Анекдот

Яша с утра спросил у супруги, почему она отрезает кончики сосисок, когда готовит их. «Не знаю, меня мама так научила, спроси у неё», — отвечает супруга. Яша оказался любопытным и пошёл к тёще. Он спросил: «Мама, почему действительно вы всё время кончики у сосисок отрезаете, когда варите?»

Она говорит: «Я не знаю, меня мама так научила. Если тебе интересно, позвони ей». Ну Яша такой любопытный, пошёл звонить. Звонит, говорит: «Ида Самуиловна, это Яша, ваша внучка (моя жена) и ваша дочь (моя тёща) всё время, когда варят сосиски, отрезают кончики и говорят, что это вы их научили. В чём смысл?»

«Вы что, до сих пор варите сосиски в той моей самой маленькой кастрюлечке?»


В старых проектах часто можно услышать фразу: “Исторически так сложилось”. Это объяснение используется, когда никто уже не помнит, почему было принято какое-то решение, но все продолжают следовать этой практике. Как и в анекдоте, причина, по которой что-то делается именно так, теряется во времени, а изначальная необходимость, возможно, давно отпала.

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

Ситуации, когда решение было принято “потому что так было удобно 10 лет назад”, могут сдерживать развитие проекта и приводить к трудностям в поддержке и модернизации системы.

Разработка требует регулярного переосмысления архитектурных решений и устранения наследия, которое перестало приносить пользу. Периодически задавая вопрос “Почему это сделано именно так?”, можно избежать накопления технического долга и упростить жизнь будущим разработчикам.

Как бороться с наследием прошлого

  1. Документировать решения: Поддержка документации помогает понимать, почему определённое решение было принято, и облегчает пересмотр устаревших подходов. Например, Architecture decision log
  2. Рефакторинг кода: Периодически пересматривайте старый код, чтобы выявлять и устранять неэффективные решения.
  3. Постоянное обучение команды: Обучение помогает разработчикам понимать современные подходы и технологии, что позволяет быстрее определять устаревшие паттерны.
  4. TechTalk: Создайте культуру, где команда может открыто задавать вопросы о текущих решениях и предлагать улучшения.

Мета информация

Область:: 00 Головные мюсли, 00 Разработка
Родитель::
Источник::
Создана:: 2024-11-12
Автор::

Дополнительные материалы

Дочерние заметки