Eu fico realmente surpreso com algumas questões e respostas no StackOverflow/StackExchange.
Tem dicas e malícias sobre coisas que não se encontra nos livros/documentos, achei uns tópicos bem interessante e queria compartilhar com a galera, até pra discutir:
What popular ?best practices? are not always best, and why?
What should take precedence: YAGNI or Good Design?
Vou descrever aqui alguns tópicos interessantes que eu concordei pra quem não tiver tempo de ler todos os tópicos:
“Premature optimization is the root of all evil.”
Não, não é. É melhor construir com um bom desempenho desde o início, desde que você não se concentre em minúcias.
“Don’t reinvent the wheel.”
Nossa, essa é uma das mais faladas e eu tive que concordar com a resposta: Uma solução 100% adequada raramente existe.
“Unit Test Everything.”
Teste de unidade em tudo realmente eu não concordo, existem métodos e classes que só fazem chamadas a outros métodos e classes, fazer testes de unidade pra esses membros é fazer o teste conhecer 100% a implementação destes caras, ficando difícil de dar manutenção e coisas do tipo, melhor um teste de integração nesses casos.
“The Single Responsibility Principle” - S in S.O.L.I.D. Principles
Podemos cair no erro de levar em consideração esse princípio em tudo sem levar em consideração a coesão. Eu mesmo estava fazendo uma classe de serviço que fazia nada mais nada menos que operações CRUD, se eu levar em consideração o SRP nela, teria 4 classes: CreateClass, ReadClass, UpdateClass e DeleteClass, me levando a um exagero de classes sem necessidade, muito mais simples manter essas operações em uma única classe.
Acho que coisas como essa traz muita dificuldade para iniciantes, são coisas que não são muito comentadas sobre os patterns/principles/bestpractices.
Good advice comes with a rationale so you can tell when it becomes bad advice. If you don’t understanding why something should be done, then you’ve fallen into the trap of cargo cult programming, and you’ll keep doing it even when it’s no longer necessary or even becomes deleterious. - Raymond Chen in Good advice comes with a rationale so you can tell when it becomes bad advice