7 вещей, которые следует учитывать перед началом рефакторинга кода

German German 18 Июля 2021

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

Познакомьтесь со своим кодом

Сначала взгляните на весь код и выясните его сильные и слабые стороны. Делайте заметки о том, какие проблемы на самом деле решаются очень хорошо, и где оригинальные авторы использовали ярлыки или уловки, чтобы заставить эту вещь работать, и какие решения фактически сдерживают ваше дальнейшее развитие. Только если вы получите полную картину, вы сможете принять разумное решение, с чего начать. Вы, вероятно, захотите сначала исправить мелкие куски, прежде чем вносить «косметические» изменения.

Если он не сломан, не чините его

Код, который работает правильно, не снижая производительности или не оказывая крайне негативного воздействия на приложение, вероятно, можно оставить как есть. Хаки, упомянутые выше, могут привести к снижению производительности или ошибкам, которые никто не понимает, поэтому исправьте их. Если решение вам не нравится, но работает, оставьте его пока как есть.

Не учитывайте личные предпочтения

Личные предпочтения — не повод для рефакторинга кода! То, что вам не нравится структура, не означает, что она неправильная и ее необходимо изменить.

Вам не нужна эта новая модная библиотека / фреймворк!

Новые технологии тоже не повод для рефакторинга кода. То, что есть что-то новое, не значит, что это лучше. Новая технология должна иметь очень положительное влияние на приложение, чтобы его можно было оправдать. Также учтите, что новые вещи могут оказаться не такими проверенными, как следовало бы использовать в производственной среде.

Не поддавайтесь желанию просто все переписать

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

Делайте маленькие шаги

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

Сделайте все тесты успешными

Перед фиксацией и отправкой любого отредактированного кода убедитесь, что все тесты пройдены. Не поддавайтесь желанию найти обходные пути и обмануть тесты. Если тесты не пройдут, узнайте, почему. Старые тесты могут указывать на неясные ошибки.

2 Ответа

  1. OleStep OleStep 18 Июля 2021

    Лучшая цитата, которую я когда-либо читал о рефакторинге, — это:

    Сделайте изменение легким, а затем сделайте легкое изменение — Кент Бек

    1. Evg Evg 19 Июля 2021 (ред.)

      Этим можно заниматься бесконечно, иногда правда встает вопрос целесообразности. Мой любимый пример сайт одной соц. сети, где на вопрос: это можно улучшить, идет однозначно ДА. А на вопрос: почему не улучшаете? Следует ответ, мало смысла, много затрат. ) Разговор конечно шел прям о непосредственном глобальном рефакторинге, но в момент добавления, изменения кода работы (рядом с ним) проводятся постоянно.