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