Programador Java não passa nem da entrevista do RH se não demonstrar conhecer design patterns e ter aplicado pelo menos meia dúzia durante a carreira.
Em algumas empresas isso pode ser verdade a maior parte do tempo, mas na minha experiência eu vi “programadores Java” em pequenas e grandes empresas que não sabiam fazer um loop ou declarando métodos fora da classe.
Sabia que eu prefiro dar manutenção em código assim, que não compila?
Melhor que dar manutenção em código cheio de design patterns.
Eu entendo. É um saco encontrar um código que poderia ser extremamente simples, mas se tornou complexo devido ao uso desnecessário de mecanismos “sofisticados”. Bom, você sempre pode jogar fora e reescrever…
Por outro lado, acho que jogar o bebê fora junto com a água do banho não é a solução. Não concordo com a atitude da comunidade de programação funcional em relação a Design Patterns. A imagem abaixo resume bem essa atitude:
Para mim, isso é miopia. Eu não descarto a programação funcional, nem OO. Ambos são paradigmas úteis e pdoem ser utilizados em conjunto, quando necessário.
Se tenho que reescrever é porque o software não é flexível e reutilizável.
Você é um Troll.
Você deve descartar design patterns e focar nos requisitos da aplicação que esta desenvolvendo, seja ela OO ou funcional.
Maioria se ilude com design pattern, que serve mais pra arquiteto colocar viseira em programador, e não pra ajudar a resolver requisitos que são mais importantes para o cliente.
Olha, acho que vale a pena reavaliar isso.
Lembre-se que as pessoas que criaram o movimento ágil foram as mesmas que criaram o movimento de patterns. Kent Beck, Martin Fowler, Ward Cunningham… Esse movimento surgiu de programadores e não de “enterprise architects”.
Design patterns servem para te ajudar a resolver problemas que você tem. Se você não tem um problema para o qual se aplique um determinado padrão, então não há porque usa-lo. Usar por usar leva a designs desnecessariamente complexos. Mas se você tem um problema, não sabe como lidar com ele e um design pattern se aplica, por que não usa-lo?
Patterns não são uma receita de bolo. Você vai montar um armário e tem uma caixa com 40 ferramentas. Você não tem que usar as 40 ferramentas, somente deve usar as que são realmente necessárias para fazer o trabalho. Agora, se o armário tem um monte de parafuso Allen e você não tem a chave Allen na tua caixa de ferramentas, você dançou. Eu prefiro ter uma caixa de ferramentas variada.