Під час програмування ми всі розробляємо практику та зразки, якими користуємось і на яких спираємось. Однак з часом, як змінюється наше розуміння, зрілість і навіть використання технологій, ми розуміємо, що деякі практики, які ми колись вважали чудовими, не застосовуються (або більше не застосовуються).
Прикладом практики, яку я колись використовував досить часто, але в останні роки змінився, є використання об'єктного шаблону Singleton .
Завдяки власному досвіду та тривалим дискусіям з колегами я зрозумів, що одиночні кнопки не завжди бажані - вони можуть ускладнити тестування (пригнічуючи такі методи, як глузування) і можуть створити небажане з'єднання між частинами системи. Натомість я зараз використовую об'єктні заводи (як правило, з контейнером IoC), які приховують природу та існування синглів з частин системи, які не цікавляться - або потребують цього знати. Натомість вони покладаються на фабрику (або локатор обслуговування) для отримання доступу до таких об'єктів.
Мої запитання до громади в дусі самовдосконалення:
- Які схеми чи практики програмування ви нещодавно переглянули, а тепер намагаєтесь уникати?
- Чим ви вирішили замінити їх?