Skip to content

Latest commit

 

History

History
53 lines (35 loc) · 4.03 KB

gr04_refactoring-commits.md

File metadata and controls

53 lines (35 loc) · 4.03 KB

Git Rule 4: Формирование коммитов рефакторинга

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

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

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

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

    • Если всё же в рамках бизнес-задачи вам необходимо переработать участок имеющегося кода, например, для его переиспользования, то перед текстом коммита с этим изменением нужно добавить (Реф).
      HRL-1 (Реф) Вынесен метод обработки процесса логина
      
  • Писать в сообщении коммита всё, что было изменено в рамках коммита. Если появляется желание оформить описание в виде списка изменений, то стоит задуматься над разбиением на отдельные коммиты.

    • "Правки после ревью" - это пример плохого сообщения коммита. Оно не отражают суть изменений и позволяет смешивать в одном коммите слишком много разнообразных изменений.

    • "Доработки оформления" - допустимое сообщение, если в нём содержатся только несколько однотипных правок, не меняющих ни логику кода, ни смысловое значение комментариев.

    • "Добавлены переносы строк" - точное и ясное сообщение коммита.

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

    • Перемещение файла или группы файлов из одной общей папки в другую общую папку средствами IDE.

    • Переименование метода, который используется в разных местах, средствами IDE.

    • Удаление сущностей средствами IDE.

    • Замена одной повторяющейся фразы в комментариях кода на другую с помощью "Replace all" или поиском по проекту.

      HRL-1 Переименование метода someMethod
      
      В someNewFancyMethod.
      
      HRL-1 Перемещение метода anotherMethod
      
      Метод перенесён из SomeService в AnotherService.