Top.Mail.Ru
ypx
INTENSIVE
Попробуй себя в UX/UI-дизайне UX/UI-дизайн бесплатно
7 дней
5 проектов в портфолио
проверка дз
banner-circle
INTENSIVE
Попробуй себя во Frontend разработке Frontend бесплатно
7 дней
1 полноценный проект
проверка дз
banner-circle
Рефакторинг кода
О процессе, позволяющем сделать код более эффективным и удобным в обслуживании, улучшить его читаемость, значительно упростить контроль качества и отладки, а также предотвратить появление ошибок в будущем.
Веб-разработка
4043

Что такое рефакторинг кода?


Рефакторинг — это контролируемый процесс улучшения кода, без изменения его функциональности.

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

Рефакторинг — важный этап в процессе разработки любого программного обеспечения. Этот процесс рассматривается как неявный компонент гибкой разработки, где от разработчиков ожидается, что они будут постоянно улучшать качество кода. Другой случай, когда требуется рефакторинг, — требования к программному обеспечению обновляются, а разработчикам необходимо адаптировать систему под эти требования.




Необходимость рефакторинга


Грязный код


Цель рефакторинга кода - превратить грязный код в чистый и снизить общий технический долг проекта.

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

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

Некоторые типы грязного кода включают:


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




Грязный код с запахом


Определить необходимость рефакторинга можно на основе запахов кода. Запахи кода — индикаторы проблем, на которые нужно обращать внимание при рефакторинге. Их легко найти и исправить, однако иногда они предвещают глубинные проблемы с кодом.

Авторы книги «Рефакторинг» Мартин Фаулер и Кент Бек дают следующие варианты запахов кода:

  • Повторяющийся код

Как следует из названия, это тот случай, когда вы оставляете один и тот же фрагмент кода в нескольких местах. Этот недочет можно исправить, извлекая код и превращая его в метод, а затем вызывая этот метод вместо копирования и вставки кода. Такое решение известно как Extract Method (метод извлечения).

  • Длинный метод

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

  • Большой класс

Этот запах нарушает принцип единой ответственности (SRP); букву «S» в принципах SOLID. Этот принцип гласит, что у каждого класса должна быть только одна причина для изменения, что означает, что у него должна быть только одна ответственность. А когда у нас большой класс, это означает, что у него больше одной ответственности. Такого быть не должно, потому что из-за этого цель класса неясна. Чтобы следовать SRP, мы используем класс Extract, где один класс играет роль двух классов, или Extract Subclass, где у класса есть функции, которые используются только в некоторых экземплярах.


Когда делать рефакторинг


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

  • Правило 3 ударов

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

  • Делайте рефакторинг, когда добавляете новую функцию
  • Делайте рефакторинг, если требуется исправить ошибку
  • Делайте рефакторинг при разборе кода
Понравилась статья? Сохраните её в своих соц. сетях!
обучайся с нами профессии
Frontend-разработчик
Подробнее о курсе
Читайте другие статьи
Как разработчику общаться с клиентами на фрилансе?
Занимаетесь Frontend-разработкой на фрилансе? Узнайте секреты успешного общения с клиентами, чтобы не упускать выгодные заказы и заработать хорошую деловую репутацию.
Веб-разработка
1760
Почему язык JavaScript так популярен?
Это язык программирования сейчас очень востребован, ведь на нём можно разрабатывать как frontend, так и backend части, а еще и мобильные приложения! Давайте немного окунёмся в историю языка и узнаем его будущее...
Веб-разработка
4952
HTML, CSS, JavaScript и PHP: что такое и для чего?
Если вы слышали эти обозначения, но до сих пор не понимаете, что это такое и как они работает, то Айтилогия поможет вам стать ближе к процессу разработки сайтов!
Веб-разработка
2244
Получайте первыми свежие статьи из нашего блога прямо на вашу почту
Введите корректный e-mail
Никакого спама. Только ценные и полезные статьи для вас!