Клиент: Power IT S.R.L.
Модернизация легаси-платформы на Java
Модернизация Java-приложения на 10 000+ строк: рефакторинг 400+ классов, стандартизация окружений в Docker и интеграция с национальным реестром.
Контекст
Долгоживущая Java-платформа для винодельческой отрасли Молдовы, накопившая годы изменений и бизнес-процессы, которые на ней держатся. Работа шла почти три года, при этом платформа всё время оставалась в эксплуатации.
Что делало задачу сложной
Легаси сопротивляется изменениям по структурным причинам. Тестов, которые сказали бы, безопасен ли рефакторинг, обычно нет; настройка окружения живёт в головах тех, кто здесь дольше всех; а у каждого модуля есть причина быть странным, и она нигде не записана. Ничего из этого не лечится переписыванием, когда бизнес работает ровно на том, что вы собрались переписывать.
Что я сделал
- Рефакторинг 400+ Java-классов в приложении на 10 000+ строк
- Стандартизация локальных окружений разработки через Docker
- Новый модуль отчётности
- Интеграция API национального кадастрового реестра
- Работа над производительностью основных сервисов
Результаты
- p95 задержки ниже на ~32% на трёх самых горячих эндпоинтах
- Список, корзина и оформление, замер в APM на живом трафике — неделя до релиза против недели после. GET /orders: p95 с 820 мс до 560 мс. Причина конкретная: убран N+1, добавлен составной индекс (user_id, created_at), справочники перенесены в Redis с TTL 5 минут.
- Онбординг разработчика с ~2 дней до ~3 часов
- Замер от клона репозитория до первого зелёного прогона тестов, на трёх новых разработчиках. Было ~2 дня ручной настройки по устаревшему README; стало docker compose up, сид-данные и переписанный README.
Стек
- Java
- Spring Boot
- Spring Security
- Hibernate/JPA
- Docker
- Redis
- SQL
- JUnit