IT Воронеж
IT Воронеж
@voronezh_it

Ранние обобщения: почему универсальный код часто вреден

Ранние обобщения: почему универсальный код часто вреден

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

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

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

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

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

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

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

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

start

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

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

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