IT Липецк
IT Липецк
@itlipetsk

Универсальные решения, которые никому не пригодились

Универсальные решения, которые никому не пригодились

Знакомая история: два похожих отчёта — и разработчик пишет универсальный конструктор отчётов. Через год в нём двадцать настроек, разобраться невозможно, а каждый новый отчёт всё равно требует правок в коде.

Почему так выходит. Обобщение требует знания о том, как задачи будут расходиться дальше. В начале этого знания нет, и вы обобщаете по внешнему сходству.

Правило, которое работает. Сначала повторите. Две похожие реализации — нормально. Когда появляется третья и видно, что общего по существу, — тогда объединяйте.

Признаки преждевременного обобщения. Параметры-выключатели, меняющие поведение функции. Настройки, которыми пользуется один вызов. Слои абстракции с единственной реализацией под ними.

Что делать с уже написанным. Не переписывать разом, а разделять при следующем изменении: когда очередная правка требует нового флага, обычно дешевле разнести случаи.

И трезвость: универсальность стоит денег каждый день, а пригождается редко. В промышленных системах простое и явное почти всегда выигрывает у гибкого и хитрого.

IT Липецк — t.me/itlipetsk
Этот пост опубликован в Telegram-канале IT Липецк. Подписаться можно по ссылке: @itlipetsk.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.