архитектура

Руки печатают на клавиатуре крупным планом

Рефакторинг легаси: как не сломать то, что работает

19.06.2026

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

Первое правило: сначала понять, потом менять

Соблазн сразу начать переписывать код, который выглядит плохо, очень велик. Но за уродливым на первый взгляд кодом почти всегда стоит история — часто это накопленные исправления реальных багов и обработка граничных случаев, которые не видны из чтения кода поверхностно. Прежде чем менять что-то, я потратил неделю просто на чтение: git blame по ключевым файлам, старые тикеты, связанные с этим кодом, комментарии в коммитах.

Диаграмма архитектуры на доске

Почему я отказался от микросервисов в пет-проекте

20.02.2025

Полтора года назад я начал пет-проект — небольшой сервис для учёта личных расходов — и на радостях сразу нарисовал схему из семи микросервисов: авторизация, транзакции, категории, отчёты, уведомления, импорт банковских выписок и API-шлюз. Через месяц я всё это снёс и написал заново в виде одного монолитного приложения. Хочу объяснить, почему.

Соблазн красивой архитектуры

На работе я много имею дело с распределёнными системами, и мне казалось естественным переносить этот опыт на личный проект. Микросервисы выглядят солидно на диаграмме, каждый сервис — отдельная ответственность, всё по книжке. Проблема в том, что книжка писалась для команд из десятков человек и систем с реальной нагрузкой, а не для одного разработчика, который открывает ноутбук по вечерам два раза в неделю.