В процессе программирования все мы разрабатываем методы и шаблоны, которые мы используем и на которые полагаемся. Однако со временем, по мере того как наше понимание, зрелость и даже использование технологий меняются, мы начинаем понимать, что некоторые практики, которые мы когда-то считали хорошими, не подходят (или больше не применяются).
Пример практики, которую я когда-то использовал довольно часто, но в последние годы изменился, - это использование шаблона объекта Singleton .
Благодаря моему собственному опыту и долгим спорам с коллегами я пришел к выводу, что одиночные команды не всегда желательны - они могут затруднить тестирование (запрещая такие методы, как имитация) и могут создавать нежелательные связи между частями системы. Вместо этого я теперь использую фабрики объектов (обычно с контейнером IoC), которые скрывают природу и существование одиночных объектов от частей системы, которым все равно - или которые должны знать. Вместо этого они полагаются на фабрику (или локатор сервисов) для получения доступа к таким объектам.
Мои вопросы к сообществу в духе самосовершенствования:
- Какие шаблоны или практики программирования вы недавно пересмотрели и теперь стараетесь избегать?
- Чем вы решили их заменить?