Разработчики обычно любят работать над «зелеными полями»: создавать что-то новое. Проекты с зелеными полями - это весело, потому что у вас есть много творческой свободы, вы можете использовать новейшие технологии и потому, что это быстро и легко, когда вам не нужно беспокоиться о понимании или взломе существующего кода.

К сожалению, если вы не живете в стране стартапов, разработчики тратят большую часть своего времени на поддержку существующего кода. Это скучно, но факт. Вот почему я уделяю такое внимание написанию поддерживаемого кода.

Иногда очень сложно внести изменения в существующий код. Вот четыре вещи, которые я обычно делаю, когда мне нужно понять существующий код перед его изменением:

  1. Прочтите модульные тесты: если вам повезло, что вы успешно прошли модульные тесты, это отличное место для начала. Он объясняет цель кода и помогает предотвратить его нарушение.
  2. Реорганизуйте код: переименовывайте переменные и методы по мере изучения кода и начала его понимания. Обычно я могу придумать способы сделать код более понятным или переименовать запутанные переменные. Рефакторинг с переименованием и рефакторингом метода извлечения является относительно низким риском и облегчит жизнь будущим сопровождающим! Примечание. Я делаю это только при работе со строго типизированным языком и хорошим инструментом рефакторинга.
  3. Внедрение модульных тестов. Это может занять много времени, если тестов еще нет, но оно того стоит. Я часто перемещаю метод, который меня интересует, в его собственный класс, чтобы я мог представить Mocks и чертовски протестировать его. Сначала напишите тесты для существующей логики, затем для вашей новой логики.
  4. Разбейте код. Мне нравится создавать новую ветку, а затем намеренно вносить большие изменения в код, чтобы понять, как это работает. Когда я закончу… я отменяю свои изменения и удаляю ветку. Это площадка для экспериментов, которая очень полезна при изучении незнакомого кода.

Есть ли другие полезные техники, которые я здесь не рассмотрел?