Comme nous le programme, nous avons tous de développer des pratiques et des modèles que nous utilisons et dont ils dépendent. Cependant, au fil du temps, à mesure que notre compréhension, de la maturité, et même l'utilisation de la technologie de changements, nous nous rendons compte que certaines pratiques que l'on pensait étaient de grands ne sont pas (ou ne s'appliquent plus).
Un exemple de pratique une fois, j'ai utilisé assez souvent, mais au cours des dernières années a changé, c'est l'utilisation de l' objet Singleton pattern.
Au travers de ma propre expérience et de longues discussions avec des collègues, je me suis rendu compte que les singletons sont pas toujours souhaitable - qu'ils peuvent rendre le test plus difficile (par inhibition de techniques comme se moquer) et peut créer des indésirables de couplage entre les parties d'un système. Au lieu de cela, j'utilise désormais l'objet d'usines (généralement avec un conteneur IoC) qui cachent la nature et de l'existence de singletons de certaines parties du système qui ne se soucient pas ou besoin de savoir. Au lieu de cela, ils s'appuient sur une usine (ou service locator) d'acquérir l'accès à ces objets.
Mes questions à la communauté, dans l'esprit de l'auto-amélioration, sont:
- Quels modèles de programmation ou de pratiques avez-vous réexaminé récemment, et maintenant, essayez de les éviter?
- Qu'avez-vous décider de les remplacer?