Hoje � um daqueles dias. Eu estou projetando um software novo e em um modo reflexivo. Eu realizaram quanto de nossas estruturas populares e o software s�o os projetos simplesmente est�pidos sem interesses para a usabilidade e a est�tica. Os testes padr�es s�o seguidos cega. Em qualquer lugar voc� l� an�ncios sobre um software/estrutura que tem x ou teste padr�o que de y voc� deve saber que voc� est� dirigido para o problema.

Algumas buzzwordes populares s�o hoje COI (inje��o) da depend�ncia, MVC, MVC2 etc. perguntam muitos daqueles mesmos desenhadores que �vida o incoroporate tais testes padr�es sobre o uso encaixota quando aqueles testes padr�es n�o devem ser usados e voc� come� um olhar fixo em branco quase todas as vezes ou uma resposta lac�nico que n�o h� nenhuns.

Eu sou perguntando meus empregados potenciais quando MVC n�o devem ser usados e eu n�o come� ainda uma resposta aceit�vel. Pode voc�?

Eu estava lendo sobre esta estrutura maravilhosa nova chamada Listra. Eu gosto d. Entretanto exige-o ter getter e setter maus. Como os povos vindos n�o realizam que os getter e os setter s�o maus. Como os povos vindos n�o realizam que n�o est�o realmente orientados ao objecto. De facto ter getter e setter indica na maior parte um problema do projeto.

Como os povos vindos n�o realizam o projeto n�o � sobre testes padr�es ou buzzwordes. � sempre um trade-off entre possibilidades. Somente um bom desenhador sabe balan�ar as conseq��ncias e fazer uma escolha apropriada, v�lida para alguma dura��o.

Eu estava come� impaciente em o minuto em que eu funcionei em torno de um artigo velho de Alan Holub (pode vive � idade avan�ada madura e com sa�de cheia). Falou exatamente sobre as edi��es que eu estou falando aproximadamente e expressou-a melhor do que eu poderia. Deixe-me cit�-lo.

Projete, pela natureza, seja uma s�rie de trade-offs. Cada escolha tem um bom e lado mau, e voc� faz sua escolha no contexto dos crit�rios totais definidos pela necessidade. Bons e mau n�o s�o os absolutes, entretanto. Uma boa decis�o em um contexto p�de ser m� em outro.

Se voc� n�o compreende ambos os lados de uma edi��o, voc� n�o pode fazer uma escolha inteligente; de facto, se voc� n�o compreende todas as ramifica��o de suas a��es, voc� n�o est� projetando de todo. Voc� est� trope�ando na obscuridade. N�o � um acidente que cada cap�tulo no grupo do livro de quatro testes padr�es do projeto inclui uma se��o das conseq��ncias que descreva quando e porque usar um teste padr�o � impr�pria.

Indic que algum caracter�stica de l�ngua ou idioma de programa��o comum (como accessors) t�m problemas n�o � a mesma coisa que o dizer deve nunca os usar sob todas as circunst�ncias. E apenas porque uma caracter�stica ou um idioma s�o de uso geral n�o significa que voc� deve o usar qualquer um. Os programadores Uninformed escrevem muitos programas e simplesmente sendo empregado por Sun Microsystems ou por Microsoft n�o melhora m�gica algu�m que programa nem n�o projeta habilidades. Os pacotes de Java cont�m muito grande c�digo. Mas h� igualmente umas partes desse c�digo que eu sou certo os autores s�o embara�ado admitir que escreveram.

Pelo mesmo s�mbolo, o mercado ou os incentivos pol�ticos empurram frequentemente idioma do projeto. �s vezes os programadores fazem decis�es m�s, mas as companhias querem promover o que a tecnologia pode fazer, assim que de-emphasize que a maneira em que voc� faz ele � menos do que o ideal. Fazem o melhor de uma situa��o m�. Conseq�entemente, voc� actua irrespons�vel quando voc� adota toda a pr�tica de programa��o simplesmente porque que for a maneira que voc� � supor fazer coisas. Muitos projetos falhados de JavaBeans da empresa (EJB) provam este princ�pio. a tecnologia EJB-baseada � grande tecnologia quando usada apropriadamente, mas pode literalmente derrubar uma companhia se usada impr�pria.

Meu ponto � que voc� n�o deve programar cega. Voc� deve compreender que o havoc uma caracter�stica ou um idioma pode wreak. Em fazer assim, voc� est� em uma posi��o muito melhor para decidir se voc� deve usar esse caracter�stica ou idioma. Suas escolhas devem ser informado e pragm�ticas.

Eu concordo com ele 110%.

Agora que est� fora de minha caixa, deixe-me v�o para tr�s ao projeto.