Während wir programmieren, entwickeln wir alle Praktiken und Muster, die wir verwenden und auf die wir uns verlassen. Mit der Zeit stellen wir jedoch fest, dass einige Praktiken, die wir einst für großartig hielten, nicht (oder nicht mehr anwendbar) sind, wenn sich unser Verständnis, unsere Reife und sogar unser Technologieeinsatz ändern.
Ein Beispiel für eine Praxis, die ich einmal ziemlich oft angewendet habe, aber in den letzten Jahren geändert habe, ist die Verwendung des Singleton-Objektmusters .
Durch meine eigenen Erfahrungen und langen Debatten mit Kollegen habe ich festgestellt , dass Singletons nicht immer wünschenswert sind - sie können das Testen erschweren (indem sie Techniken wie das Verspotten hemmen) und unerwünschte Kopplungen zwischen Teilen eines Systems erzeugen. Stattdessen verwende ich jetzt Objektfabriken (normalerweise mit einem IoC-Container), die die Art und Existenz von Singletons vor Teilen des Systems verbergen, die sich nicht darum kümmern - oder wissen müssen. Stattdessen verlassen sie sich auf eine Fabrik (oder einen Service-Locator), um Zugriff auf solche Objekte zu erhalten.
Meine Fragen an die Gemeinschaft im Geiste der Selbstverbesserung lauten:
- Welche Programmiermuster oder -praktiken haben Sie in letzter Zeit überdacht und versuchen nun zu vermeiden?
- Womit haben Sie sich entschieden, sie zu ersetzen?