Энтропия кодовой базы Почему с одним кодом работать — одно удовольствие, а другой — просто мерзость, где любая, даже маленькая фича вызывает каскад изменений по всем файлам, спонтанные баги в местах, которые никакого отношения к твоей задаче не имели, а при влитии оказывается, что ты толкаешься еще с пятеркой мердж-реквестов в одних и тех же файлах?)

И вишенка на торте, всему этому сопутствуют драматические трудозатраты. В физике термин энтропия описывается как стремление к хаосу. Что крайне емко описывает происходящее с кодом. Даже без изменений код становится все дороже обслуживать

Мой любимый пример проявления энтропии:

  • Сколько времени нужно, чтобы сделать фичу ХХХ?
  • 8 часов
  • А вот в том проекте?
  • У-у-ууу, часов 40 : /

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

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

Есть еще пара прекрасных вечных книжек про это:

  • Фред Брукс: Мифический человеко-месяц (книгу написали 50 лет назад, про автоматизацию производств, а она все еще актуальна как никогда)
  • Мартин Фаулер: Рефакторинг (он вводит термин "code smells", кода код с душком, что это, какой он бывает, как это дело рефачить)