Универсальность, которая никому не пригодилась
Классический сюжет: два похожих отчёта — и появляется универсальный конструктор. Через год в нём двадцать настроек, а каждый новый отчёт всё равно требует правок в коде.
Почему так. Обобщение требует знания о том, как задачи разойдутся дальше. В начале его нет, и вы обобщаете по внешнему сходству.
Рабочее правило. Сначала повторите. Две похожие реализации — норма. Появилась третья и видно, что общего по существу, — объединяйте.
Признаки преждевременного обобщения. Флаги, меняющие поведение функции. Настройки, которыми пользуется один вызов. Слои абстракции с единственной реализацией.
Что делать с готовым. Не переписывать разом: разделять при следующем изменении, когда очередная правка требует нового флага.
И трезвость: гибкость стоит денег каждый день, а пригождается редко. В промышленных системах простое и явное почти всегда выигрывает у хитрого и универсального — особенно когда сопровождать это будет другой человек через пять лет.
IT Сургут — t.me/surgut_it
IT Сургут
@surgut_it
Универсальность, которая никому не пригодилась
Этот пост опубликован в Telegram-канале IT Сургут. Подписаться можно по ссылке: @surgut_it.