# Рефакторинг

# Описание

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

  • Чистый код
  • Простой дизайн
  • Уменьшение технического долга

# Почему ветка важна?

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

Рефакторинг приводит к позитивным изменениям как для членов команды, так и для лида. Для члена команды:

  • Упрощение последующего расширения системы.
  • Простота в понимании подробностей реализации.

Для лида:

  • Снижение временных рисков при последующем расширении соответствующей части системы.
  • Снижение негатива членов команды при работе с кодом.

# Что будет, если её не делать?

Рефакторинг – один из основных способов уменьшения технического долга. Если регулярно не проводить рефакторинг:

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

# На кого может быть делегирована?

Идеальная ситуация: каждый разработчик проводит рефакторинг по ходу решения текущих задач.

# Примеры поведения

# Примеры плохого поведения

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

# Примеры хорошего поведения

  • По ходу ежедневной работы каждый разработчик переключается между режимами: разработка/рефакторинг.
  • Рефакторинг делается при помощи тестов.

# Консультации

# Теория

# Книги