Programando para interfaces.
A sita��o do livro do GOF � excelente. Mas gostaria de
colocar um outro ponto de vista.
Hoje al�m da escola que prega o design antecipat�rio
de software (que � onde os design patterns entram)
existe uma outra escola de redesign constante (onde
refactoring entra).
Refactoring � exatamente redesign, � mudan�a de design
de c�digo j� escrito. Para que serve e para onde leva?

Segundo esta filosofia, voc� deve fazer sempre a coisa
mais simples que possa funcionar (desde que esta coisa
simples n�o contenha nenhum c�digo duplicado).
Acredita-se que o melhor estado do software no momento
da mudan�a �: "simples". Se for simples � f�cil de
mudar.
Contudo, se voc� fez a coisa mais simples que pudesse
funcionar, com certeza n�o criou interfaces e
flexibilidades desnecess�rias (no momento).
Mas e agora quando chega a hora de inserir uma nova
funcionalidade, o c�digo n�o est� preparado! N�o! Mas
est� simples e agora � a hora de aplicar refactoring.
Se a nova funcionalidade n�o se encaixa bem no
software como est� voc� faz as mudan�as necess�rias
para que ele ganhe um novo design, flexivel APENAS
onde � necess�rio.

Esta filosofia vem da id�ia de que atualmente o mundo
dos neg�cios e das tecnologias muda muito r�pido, e
voc� n�o pode prever TODAS as mudan�as, por isso um
design antecipat�rio pode n�o flexibilizar pontos que
seriam necess�rios no futuro e ao mesmo tempo
adicionar complexidade por flexibilizar pontos que n�o
seriam necess�rios no futuro.

Estas id�ias s�o extremamente pr�ticas e hoje s�o
adotadas por v�rias metodologias de software
conhecidas como "Agile" (http://agilealliance.org)
Umas das metodologias mais conhecidas e bem
estruturadas nesta linha � eXtreme Programming ou XP.
(http://www.extremeprogramming.org/)

Para uma discuss�o nacional sobre o assunto, voc� pode
se tornar membro dos XPers, grupo nacional de estudo e
divulga��o de XP (http://groups.yahoo.com/group/xpers)

O equivalente do livro do GOF (Design Patterns) no
pensamento de refactoring �:
Refactoring - Improving the Design of Existing Code
Autor: Martin Fowler.

Nota Final: Ap�s o uso de refactoring, muitos design
patterns acabar�o sendo aplicados. A vantagem � que
voc� os aplica apenas onde e quando s�o necess�rios e
n�o logo de cara onde voc� "PENSA" (ou PREV�) que
sejam necess�rios. (Os seres humanos n�o s�o muito
bons em previs�es).

Ricardo Munhoz Santiago




__________________________________________________
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1

------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a