Podczas programowania wszyscy rozwijamy praktyki i wzorce, których używamy i na których polegamy. Jednak z biegiem czasu, gdy zmienia się nasze zrozumienie, dojrzałość, a nawet wykorzystanie technologii, zdajemy sobie sprawę, że niektóre praktyki, które kiedyś uważaliśmy za świetne, nie są (lub już nie mają zastosowania).
Przykładem praktyki, której kiedyś używałem dość często, ale w ostatnich latach uległa zmianie, jest użycie wzorca obiektu Singleton .
Na podstawie własnego doświadczenia i długich debat z kolegami zdałem sobie sprawę, że singletony nie zawsze są pożądane - mogą utrudniać testowanie (hamując techniki takie jak kpiny) i mogą tworzyć niepożądane sprzężenia między częściami systemu. Zamiast tego używam teraz fabryk obiektów (zwykle z kontenerem IoC), które ukrywają naturę i istnienie singletonów przed częściami systemu, których to nie obchodzi - lub które muszą wiedzieć. Zamiast tego polegają na fabryce (lub lokalizatorze usług), aby uzyskać dostęp do takich obiektów.
Moje pytania do społeczności, w duchu samodoskonalenia, są następujące:
- Jakie wzorce lub praktyki programistyczne rozważaliście ostatnio, a teraz staracie się unikać?
- Czym zdecydowałeś się je zastąpić?