Знаете, есть такая стадия в жизни каждого разработчика, когда ты заходишь в проект, смотришь на кодовую базу и чувствуешь себя великим архитектором среди руин. Ты видишь эти нагромождения условий, странные именования и архитектурные костыли, которые держатся на честном слове и синей изоленте. В этот момент внутри просыпается благородный порыв всё переписать, внедрить чистую архитектуру, обложить всё тестами и сделать как надо. Мы называем это юношеским максимализмом, даже если юноше уже за тридцать. Но со временем, когда за плечами остаются десятки запущенных и, что важнее, десятки умерших проектов, ты начинаешь понимать одну простую истину, что код - это продукт, который имеет свойство портиться. Проблема в том, что мы часто пишем программы для воображаемого стабильного будущего, которого не существует. Мы тратим недели на избыточные абстракции на случай роста нагрузки, хотя в реальности проект может закрыться или полностью сменить вектор развития через месяц. Хороший код должен быть