Conforme programamos, todos nós desenvolvemos práticas e padrões que usamos e nos quais confiamos. No entanto, com o tempo, conforme nosso entendimento, maturidade e até mesmo o uso da tecnologia mudam, percebemos que algumas práticas que antes pensávamos serem excelentes não são (ou não se aplicam mais).
Um exemplo de prática que usei com bastante frequência, mas que mudei nos últimos anos, é o uso do padrão de objeto Singleton .
Por meio de minha própria experiência e longos debates com colegas, percebi que singletons nem sempre são desejáveis - eles podem tornar o teste mais difícil (inibindo técnicas como a simulação) e podem criar acoplamentos indesejáveis entre as partes de um sistema. Em vez disso, agora uso fábricas de objetos (normalmente com um contêiner IoC) que ocultam a natureza e a existência de singletons de partes do sistema que não se importam - ou precisam saber. Em vez disso, eles contam com uma fábrica (ou localizador de serviço) para adquirir acesso a tais objetos.
Minhas perguntas para a comunidade, no espírito de autoaperfeiçoamento, são:
- Quais padrões ou práticas de programação você reconsiderou recentemente e agora tenta evitar?
- Com o que você decidiu substituí-los?