Livro Design Patterns: e se houvesse uma segunda edição?  XML
Índice dos Fóruns » Notícias
Autor Mensagem
Thiago Senna
GUJ Master
[Avatar]

Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline

Essas coisas do tipo, patterns, smell e tantas outras coisas são um mal danado pra essa comunidade. O pior é que acaba enjaulando alguns - se você ousa ser um pouco criativo e fazer uma alteração/experimento em alguma idéia ou pattern para ganhar produtividade já vem neguinho apontar o dedo dizendo que você não sabe OO e tem que estudar mais. Aff... isso é exagero.

Na maioria dos casos pattern só adiciona complexidade e burocracia. Faz do jeito mais prático e pronto
[Email]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

ccaneta wrote:O Padrão Singleton pode ser modificado para que exista "um número máximo de instâncias de uma classe", caracterizando assim um pool de objetos,


Não. Isso é conceptualmente errado. Singleton não um master-pattern de onde derivam os outros.

Se vc quer poder escolher quantas instancias ha , isso não é um singleton. nem um shared object, é ,como vc falou , um pool. mais concretamente ObjectPool.

Não existe isso de "modificar padrões".
[WWW]
ccaneta
JavaBaby
[Avatar]

Membro desde: 26/03/2006 20:30:54
Mensagens: 97
Offline

Thiago Senna wrote:Essas coisas do tipo, patterns, smell e tantas outras coisas são um mal danado pra essa comunidade. O pior é que acaba enjaulando alguns - se você ousa ser um pouco criativo e fazer uma alteração/experimento em alguma idéia ou pattern para ganhar produtividade já vem neguinho apontar o dedo dizendo que você não sabe OO e tem que estudar mais. Aff... isso é exagero.

Na maioria dos casos pattern só adiciona complexidade e burocracia. Faz do jeito mais prático e pronto

-static instance:Singleton
+static getInstance():Singleton--------------------return instance
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Thiago Senna wrote:Essas coisas do tipo, patterns, smell e tantas outras coisas são um mal danado pra essa comunidade. O pior é que acaba enjaulando alguns - se você ousa ser um pouco criativo e fazer uma alteração/experimento em alguma idéia ou pattern para ganhar produtividade já vem neguinho apontar o dedo dizendo que você não sabe OO e tem que estudar mais. Aff... isso é exagero.

Na maioria dos casos pattern só adiciona complexidade e burocracia. Faz do jeito mais prático e pronto


Mais prático não significa mais desleixado. Mais simples, não significa mais fácil.

Se vc não quer usar o padrão , blz. Mas o padrão é aceite universalmente. se vc tem uma ideia melhor, vc tem que defendê-la corretamente. apenas invocar criatividade não vale. A razão é que quem faz gamb tb invoca a criatividade.

Tem gente que não enxerga um palmo à frente do nariz, é verdade. Mas esses não são bons designers. SE o cara não quer que vc mude algo, ele tb tem que dar argumentos.

Pattern não adiciona burocracia. Isso é uma falácia.
O que adiciona burocracia é o mau uso dos patterns. más práticas OO, mau entendimento dos principios, etc...
não culpe os patterns pela burrice dos designers ou pseudo-designers.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
xdraculax
Java Ninja

Membro desde: 12/01/2009 16:12:54
Mensagens: 286
Offline

Padrões são boms sim, e deviam ser até mais difundidos. Evitaria muito ré-trabalho e ré-dor-de-cabeça.
O difícil é enteldê-los na essência a ponto de utilizá-los com consistência.

Singleton é ruin depende de quem usa.
Eu peguei um projeto Mobile onde o tudo era Singleton - para diminuir o consumo de recursos (tenha paciência).

Porém em alguns locais uso singleton e não tenho problema nenhum.
Mas também não concordo no "Desenvolvimento Orientado a Padrões", onde sem saber se é necessário, utilizar logo o padrão de cara.
Lendo o livro Refatoração Para Padrões, é possível ver que a melhor forma de aplicar um padrão é quando o problem já existe, e você usa o padrão para resolver - e não criar o problema para resolver com um padrão.

This message was edited 2 times. Last update was at 28/10/2009 11:11:10


-Atenha-se a resolver o problema, e não criticar opiniões.
-Você percebe que está programando d+, quando está escrevendo identado!
-Não precisa estar certo, basta acreditar.
[WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

sergiotaborda wrote:
ccaneta wrote:O Padrão Singleton pode ser modificado para que exista "um número máximo de instâncias de uma classe", caracterizando assim um pool de objetos,


Não. Isso é conceptualmente errado. Singleton não um master-pattern de onde derivam os outros.
Se vc quer poder escolher quantas instancias ha , isso não é um singleton. nem um shared object, é ,como vc falou , um pool. mais concretamente ObjectPool.
Não existe isso de "modificar padrões".


"(Singleton) Permits a variable number of instances. The pattern makes it easy to change your mind and allow more than one instance of the Singleton class. Moreover, you can use the same approach to control the number of insntaces that the application uses."

Erich Gamma at Al, Design Patterns, pagina 128. Leitura recomendada!

É bom sustentarmos nossas afirmações com referencias, para que a discussão não se torne meramente opinativa!

This message was edited 3 times. Last update was at 28/10/2009 11:33:29

[Email] [WWW]
xdraculax
Java Ninja

Membro desde: 12/01/2009 16:12:54
Mensagens: 286
Offline

Não existe isso de "modificar padrões".


Porque?
Eu confio na minha capacidade e modifico se necessário.
A final de contas, padrões não são perfeitos.
Vamos virar a cabeça pros lados e enxergar possibilidades e não usar sempre os pré-moldados ein?

padrões não adicionam complexidade

E padrões adicionam complexidade sim, o prório GoF diz isso.
Você pode até conhecer os padões, mas e seus programadores?
E os coitados dos estagiários? Não fazem parte da sua equipe? Ou você é uma EUquipe?

This message was edited 4 times. Last update was at 28/10/2009 11:30:30


-Atenha-se a resolver o problema, e não criticar opiniões.
-Você percebe que está programando d+, quando está escrevendo identado!
-Não precisa estar certo, basta acreditar.
[WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

sergiotaborda wrote:Pattern não adiciona burocracia. Isso é uma falácia.
...
padrões não adicionam complexidade


Poxa! Outra negação do que esta no livro seminal! O xdraculax está coberto de razão:

Often they (design patterns) achieve flexibility and variability by introducing additional levels of indirection, and then can complicate a design

Design Patterns, página 31!!!

Voce teria alguma referencia sobre patterns nao adicionarem complexidade? Acho que precisamos de mais referencias para isso aqui nao virar conversa de bar, onde so ha opinioes.

This message was edited 3 times. Last update was at 28/10/2009 11:35:17


http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Paulo Silveira wrote:"(Singleton) Permits a variable number of instances. The pattern makes it easy to change your mind and allow more than one instance of the Singleton class. Moreover, you can use the same approach to control the number of insntaces that the application uses."

Erich Gamma at Al, Design Patterns, pagina 128. Leitura recomendada!



Perai, vc está citando e recomendando o mesmo livro que este topico começa por dizer que está desatualizado ?!


É bom sustentarmos nossas afirmações com referencias, para que a discussão não se torne meramente opinativa!


Sim, mas com referencias atuais.

This message was edited 2 times. Last update was at 28/10/2009 12:58:31

[WWW]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

Vamos fazer assim então:

Quem acha que padrões é ruim , é coisa do demo, que programar com padrões é pior que programar ad doc, que saber padrões é desperdicio de tempo e de espaço, por favor pare de usar padrões. Esqueça que existem. Mas deixe o seu contacto no codigo para que o programador que vem a seguir poder procurar vc para explicações.

Falar que padrões é ruim é muito fácil. porque não dizer também que os principios de OO são ruins ? Afinal eles são mal usados o tempo todo. Os mesmos argumentos podem ser usados com qualquer coisa , prática ou teorica , que as massas de programador usam mal.

O ponto é muito simples : quem usa mal não pode dizer que o problema é do padrão/tecnica/prática/etc... o problema é do programador/equipe que desenhou a porcaria do código totalmente sem noção.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

sergiotaborda wrote:
O ponto é muito simples : quem usa mal não pode dizer que o problema é do padrão/tecnica/prática/etc... o problema é do programador/equipe que desenhou a porcaria do código totalmente sem noção.


Um viva ao consenso

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Thiago Senna
GUJ Master
[Avatar]

Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline

sergiotaborda wrote:Perai, vc está citando e recomendando o mesmo livro que este topico começa por dizer que está desatualizado ?!

...

Sim, mas com referencias atuais.


Oras, mas se os conceitos dos patterns são inalteráveis, para que atualizar então?
[Email]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline

Só um comentário:

Essa frase está dizendo o que é possível:
The pattern makes it easy to change your mind and allow more than one instance of the Singleton class. Moreover, you can use the same approach to control the number of insntaces that the application uses."

Mas em momento nenhum ela afirma que o resultado disso ainda é um singleton. Ou afirma?

This message was edited 1 time. Last update was at 28/10/2009 12:28:41


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

ViniGodoy wrote:Só um comentário:

Essa frase está dizendo o que é possível:
The pattern makes it easy to change your mind and allow more than one instance of the Singleton class. Moreover, you can use the same approach to control the number of insntaces that the application uses."

Mas em momento nenhum ela afirma que o resultado disso ainda é um singleton. Ou afirma?


Tem razao!. Nao afirma, e nao é mesmo. É um shared object ou pool, dependendo. Ou ainda um factory method. Mas mostra que o pattern pode ir sofrendo alteracoes (rra essa a questao)

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline

Engraçado, a definição original do pattern singleton diz:
Ensure a class only has one instance, and provide a global point of access to it. [P. 127, edição de 1996 americana]

De cara, na definição, ele não fala em permitir a criação de uma única instância, embora seja um pattern criacional, mas em ter apenas uma única instância por vez. Ou seja, o singleton poderia ser destruido e recriado e, embora isso seja trabalhoso em Java, seria plenamente possível em linguagens não gerenciadas.

E notem que na definição original também cita o fato do singleton ser um "Global access point". Entretanto, vale frisar que ser um Global access point não é o mesmo que dizer que o singleton deveria ser uma "variável global".


Realmente, o livro deveria ser revisado porque a definição como está, leva ao erro.

This message was edited 1 time. Last update was at 28/10/2009 12:41:34


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team