Os métodos viraram duas coisas indepedentes, e não a mesma coisa duplicada.
Concordo que duplicação de código é ruim. Isso foi apenas um exemplo de um caso isolado. É claro que isso não é o dia a dia, até porque raramente se tem a necessidade de alterar uma classe crítica. O máximo que faz é estende-la respeitando os contratos, e se vc analisar por essa ótica foi basicamente o que eu fiz. Precisava de um método para fazer algo parecido mas diferente. O certo seria estender esse método, mas no meu caso a alteração era no algoritmo.
Só quiz exstrapolar mostrando que as vezes é melhor ser prático e obter resultados concretos de forma segura, do que ser um belo teórico que modifica uma parte crítica, roda os testes e perde o emprego.
Como eu disse: “Alguns vão me tacar na fogueira da inquisição da informática por isso”.
Fizemos uma alteração crítica, por opção, nessa versão. Basicamente trocamos a estratégia de injection de PULL para PUSH. Mais sobre isso em: http://forum.mentaframework.org/posts/list/482.page
Sim, concordo com vc! Testes poderiam ter ajudado nessa mudança. A questão é que fazer altearções críticas como essa que foi feita é RARO. Se vc faz modificações críticas no seu sistema toda hora (ou uma vez por semana que seja), algo está errado. Ou com o seu sistema (problemas de arquitetura) ou com vc (maluco!).
Talvez tenhamos chegado a uma boa conclusão aqui. Testes podem ser importantes na fase inicial de um projeto, onde a arquitetura/funcionalidades/etc ainda não estão muito maduras, e as chances de ter que modificar partes críticas são maiores. Graças a Deus o Mentawai já passou dessa fase. O core está congelado, estável, sem bugs em aberto. Ninguém faz modificações críticas no core sem apresentar motivos bem fortes para isso. O Rubem fica meio puto comigo por causa disso. Mas isso é disciplina, organização e comprometimento com os ccontratos. Sem testes…