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