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] -------------------------------------------------------------------------
