Что такое легаси в программировании

Что такое легаси-код

Легаси-код – (от англ. legacy – наследие) это код, который одна команда разработчиков получила в “наследство” от предыдущей. Это общее усредненное определение, которое характеризует термин легаси-код.

Легаси – термин, который трактуют по-разному

Как можно было догадаться по заголовку, это еще не все: у данного термина с десяток определений, которые плюс-минус все вертятся вокруг феномена “старого” кода, вот, например, парочка популярных:

Легаси – это устаревший код, который больше не поддерживается, не обновляется, но используется;

Легаси – не покрытый тестами или документацией код, написанный очень давно, настолько давно, что никто не знает как он до конца работает.

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

Общие характеристики или как появляется легаси

Не нужно чтобы все пункты совпали, достаточно одного.

Во-первых, код написан разработчиками, с которыми больше нет возможности связаться. Из-за этого нынешняя команда не может понять как работают некоторые целые модули. Очень проблемно если этот участок легаси-кода находится в ядре приложения (обычно так и бывает).

Во-вторых, код модуля написан давно на другом языке программирования или старом фреймворке, его активно используют в актуальной программе, но все новые функции добавляются через более новые технологии.

В-третьих, код, который оставлен лишь для обратной совместимости: для поддержки старых версий программ или операционных систем.

Что значит “работа с legacy” в вакансиях

Это значит, что программисту будет весело и прикольно (нет) работать со старым куском кода, о котором даже сеньор, со стажем работы в несколько лет в рамках этой компании, ничего не сможет рассказать. Очень частое явление в мире бекенд разработки на Java или iOS разработки на Objective-C и Swift. В первом случае программист будет обслуживать огромный энтерпрайз бог знает когда и кем написанный. Во втором программиста ждет увлекательный процесс переписывания программы с Objective-C на Swift. К слову, за работу с легаси платят в разы больше, чем обычно, хотя не всем это все равно приходится по душе.

Рассказать друзьям: