Легаси-проекты или сайт доисторической эпохи. Что с ним делать и как работать?

Легаси (Legacy) — это IT-сленг, которым обозначают устаревшие проекты или технологии. Это могут быть разные интересные штуки:) от старого кода, который будто писался в доисторическую эпоху, до системы, созданной десятилетия назад, но до сих пор активно используемой.

Легаси-системы бывают разными:

  • Устаревшие технологии. Например, код на языке, который уже почти никто не использует (привет, COBOL или Perl).
  • Архитектурные проблемы. Проекты, где нет модульности или понятной структуры.
  • Проекты, где нет модульности или понятной структуры. Неактуальная документация. А то и вовсе её отсутствие.
  • Огромный технический долг. Это те случаи, когда проект работает, но "на соплях".
Легаси-проекты или сайт доисторической эпохи. Что с ним делать и как работать?

Звучит одновременно смешно и страшно. А если серьёзно, тема больная для многих разработчиков. Легаси-проекты — это как старая техника: тут скрипит, там пердит, но в целом вроде как-то работает. Главное — не трогать!

А рано или поздно заказчик всё же просит потрогать. И тут, как правило, разработчики нехотя берутся за проект: документации нет, логика и архитектура с первого взгляда непонятны, да и вообще, что за уникум это писал…

Основная проблема даже не в том, что в таком проекте неприятно ковыряться, а в том, что страшно трогать, чтобы не сломать.

Ведь легаси-проект — это наследие нескольких разных разработчиков. У каждого свой подход, мышление, стиль и, наконец, квалификация. Вспоминается отрывок из советского мультфильма «Трое из Простоквашино» (олды, привет 👋🏻), где мальчик, кот и собака по очереди писали одно письмо родителям.

Если вам, как разработчику (или команде), всё же пришлось столкнуться с таким проектом, вот пара советов:

— Не спешите менять всё сразу

Иногда хочется плюнуть и переписать часть особенно плохого кода с нуля. Не надо! Лучше осмотритесь и вносите изменения постепенно, чтобы снизить риск сломать больше, чем нужно было починить. Со временем появится более чёткое понимание, что и как следует переписать с нуля, и нужно ли вообще переписывать.

— Пишите тесты

Если тестов нет (а их по-любому нет), начните добавлять их хотя бы для нового функционала.

— Держите заказчика в курсе

Объясняйте, что правки в легаси — это не просто «дописать пару строк», а масштабное археологическое исследование. Соответственно, это может повлиять на сроки и бюджеты.

— Не вешайте нос и сохраняйте чувство юмора

Без этого нельзя. Нашли трёхэтажный костыль? Поделились с коллегой, поржали и придумали, как оптимальнее решить задачу.

Тут важно понять, что легаси — это не конец света, а скорее возможность вырасти и прокачать свои скиллы.

Ну и помните: спустя время от вашего кода тоже будет плеваться другой программист :) Ну, потому что так заведено.

Я Александр технический директор диджитал-агентства Старта, переходите в мой телеграм канал – там еще больше советов!

Начать дискуссию