Легаси-проекты или сайт доисторической эпохи. Что с ним делать и как работать?
Легаси (Legacy) — это IT-сленг, которым обозначают устаревшие проекты или технологии. Это могут быть разные интересные штуки:) от старого кода, который будто писался в доисторическую эпоху, до системы, созданной десятилетия назад, но до сих пор активно используемой.
Легаси-системы бывают разными:
- Устаревшие технологии. Например, код на языке, который уже почти никто не использует (привет, COBOL или Perl).
- Архитектурные проблемы. Проекты, где нет модульности или понятной структуры.
- Проекты, где нет модульности или понятной структуры. Неактуальная документация. А то и вовсе её отсутствие.
- Огромный технический долг. Это те случаи, когда проект работает, но "на соплях".
Звучит одновременно смешно и страшно. А если серьёзно, тема больная для многих разработчиков. Легаси-проекты — это как старая техника: тут скрипит, там пердит, но в целом вроде как-то работает. Главное — не трогать!
А рано или поздно заказчик всё же просит потрогать. И тут, как правило, разработчики нехотя берутся за проект: документации нет, логика и архитектура с первого взгляда непонятны, да и вообще, что за уникум это писал…
Основная проблема даже не в том, что в таком проекте неприятно ковыряться, а в том, что страшно трогать, чтобы не сломать.
Ведь легаси-проект — это наследие нескольких разных разработчиков. У каждого свой подход, мышление, стиль и, наконец, квалификация. Вспоминается отрывок из советского мультфильма «Трое из Простоквашино» (олды, привет 👋🏻), где мальчик, кот и собака по очереди писали одно письмо родителям.
Если вам, как разработчику (или команде), всё же пришлось столкнуться с таким проектом, вот пара советов:
— Не спешите менять всё сразу
Иногда хочется плюнуть и переписать часть особенно плохого кода с нуля. Не надо! Лучше осмотритесь и вносите изменения постепенно, чтобы снизить риск сломать больше, чем нужно было починить. Со временем появится более чёткое понимание, что и как следует переписать с нуля, и нужно ли вообще переписывать.
— Пишите тесты
Если тестов нет (а их по-любому нет), начните добавлять их хотя бы для нового функционала.
— Держите заказчика в курсе
Объясняйте, что правки в легаси — это не просто «дописать пару строк», а масштабное археологическое исследование. Соответственно, это может повлиять на сроки и бюджеты.
— Не вешайте нос и сохраняйте чувство юмора
Без этого нельзя. Нашли трёхэтажный костыль? Поделились с коллегой, поржали и придумали, как оптимальнее решить задачу.
Тут важно понять, что легаси — это не конец света, а скорее возможность вырасти и прокачать свои скиллы.
Ну и помните: спустя время от вашего кода тоже будет плеваться другой программист :) Ну, потому что так заведено.
Я Александр технический директор диджитал-агентства Старта, переходите в мой телеграм канал – там еще больше советов!