OverrideTech Анатолий Марандюк
Анатолий Марандюк, Java/Kotlin разработчик в Альфа-Банк · 25.03
Как лучше подходить к изучению легаси кода, есть ли какая-то крутая хитрая схема по рефакторингу?
Ответ очень сильно зависит от степени жести, которая предлагается к изучению, поэтому постараюсь накидать максимально общий алгоритм, который может помочь справится с любым самым адовым дерьмом, в которое по воле случае можно наступить:
1. Поищите документацию. Она может быть лихо запрятана. Не лишним будет посерфить по вики базе знаний, используя специфичные ключевые слова из доставшегося вам репозитория. Осмотрите код на наличие ссылок на документы или задачи.
2. (!) Обязательно помните, что любая документация может быть неактуальной. Особенно для старого, как говно мамонта, проекта. Используйте ее, чтобы “вкатиться” в проект и побыстрее разобраться с чем предстоит иметь дело, где искать нужный вам участок кода хотя бы примерно. Не доверяйте ей в полной мере. Коду тоже не доверяйте. Он может работать не так, как написан. (Могу написать про это пост с ахерительной историей о траблшутинге длиною в два месяца, хотите?)
3. Изучайте гит историю. Поиграйте в сыщика. По тайтлам пул реквестов или коммит месседжам можно выловить немало закономерностей. Понять предпосылки тех или иных решений и сократить себе путь к выполнению задачи.
4. Отключите чувство прекрасного на время. Не пытайтесь быть порядочным разработчиком. Скорее всего этого никто не оценит, а проблем может прибавиться. Любые изменения в легаси - это потенциальные выстрелы в собственную коленку. Не надо сломя голова бросаться рефакторить и наводить лоск. Чем масштабнее изменения - тем, возможно, больнее вам будет в ближайшем будущем.
5. Отыскав нужный вам шмат дерьма в компостной куче, постарайтесь хорошенько его размять до затвердевания. Это я о тестах, конечно же. Они могут быть, нет, они просто обязаны быть кустарными. Главное - получить хоть какую-то уверенность, что после внесения изменений поведение кода не сильно поменялось. Для этого лучше всего подойдет интеграционный тест.
6. Найдите ревьювера. Авторы, скорее всего, уже не работают в компании, если вообще живы. Постарайтесь отыскать мамонта с немалым стажем работы в компании. Он убережет вас от резких необдуманных маневров.
Бонус 🥤 7. Постоянно нойте на всех возможных митингах о том, какая нелегкая доля вам досталась. Если вдруг отлично справитесь, надо не получить статус эксперта по этому дерьму. Пусть менеджер боится, что в следующий раз вы уволитесь.
Еще посты в рубрике ответов на вопросы студентов: - Что такое костыль? - За какое время нужно бегать спринт? - Работают ли разработчики 8 часов?
Решил прервать долгое молчание постом про разработку, ждете ли вы что-то в карьерной тематике или уже позабыли зачем подписаны на этот канал?
еще контент автора
еще контент автора
OverrideTech Анатолий Марандюк
Анатолий Марандюк, Java/Kotlin разработчик в Альфа-Банк · 25.03
войдите, чтобы увидеть
и подписаться на интересных профи