Когда берешь проект, где последний нормальный коммит был в 2020
Есть такой особенный запах — смесь деревенского туалета, сырости и ностальгии по PHP 5.4. Так пахнет легаси. Настоящее, боевое, годами не тронутое легаси, которое тебе вручают со словами: "Надо чтобы работало". И сразу - "денег на апгрейд нет, но вы там держитесь"
Вообще всё начиналось как обычно. Клиент — серьёзный, наш постоянный, очень хочет порядок. Говорит: "Нам бы просто немного дописать и поправить баги. Код норм, просто старый." Ага. Просто старый. Я бы тоже себя так называл, если бы мне было 103 года и я жил в подвале с мышами.
Что имеем
- микрофреймворк на пыхе
- маршрутизации — как в маршрутке: кто крикнул, того и вызываем
- DI нет, каждый класс через new и с молитвой
- комментариев — 0
- аффтор кода — испарился, возможно из страны
Видели апи контроллер на 5000 строк кода и все завернуто в глобальный трай-кетч, чтобы не дай бог не упало, зато когда подключили сентри - ни одной ошибки, вот люди работают так работают, не то что некоторые.
Первая мысль у здорового человека, все выкинуть и переписать по нормальному. Вторая мысль: а кто это будет оплачивать банкет? Третья мысль: может я всё-таки зря не ушёл в музыку?
Ну и хеппи энд (за пяток лет то изловчились):
- внедрили ооп и более менее нормальный фреймворк (если ларавель так можно назвать)
- модульный монолит жив и терпит хорошие нагрузки, если что модули можно изолировать и уносить (если не терпит)
- обложили тестами, метриками и разными системами логирования (награду в студию - в заказной разработке и такое провернуть, уфф)
- и в конце еще версию пыхи апнули до 8.4 - но это уже другой вайб