Инженерный перфекционизм или как мы переплачиваем за архитектуру, которая никому не нужна
За годы в разработке я прошёл путь от фанатичного следования всем принципам SOLID и паттернам проектирования до понимания одной простой, но болезненной истины, пользователю всё равно, насколько элегантно выглядит ваша абстракция в пятом слое архитектуры.
Не поймите меня неправильно, чистый код важен. Но часто мы, разработчики, попадаем в ловушку инженерного перфекционизма, забывая, зачем мы вообще здесь собрались.
Мои признаки, что уже слишком:
- Преждевременная оптимизация. Вы тратите три дня на внедрение кэширования для функционала, который будут использовать 10 человек раз в неделю.
- Архитектура на будущее. Создание сложной системы плагинов там, где достаточно обычного if, просто потому что, вдруг оно когда то понадобится. Как правило, не понадобится.
- Бесконечный рефакторинг. Когда задача закрыта на 95%, но вы продолжаете переименовывать переменные и перекладывать методы из класса в класс, откладывая релиз.
Лучший код - это код, который решает проблему здесь и сейчас.
Мой совет джунам, не бойтесь грязных решений, если они оправданы сроками и здравым смыслом.