Процесс ревью кода в HH.RU

Автор: admin от 6-09-2018, 10:35, посмотрело: 156

Мне на глаза попался документ с правилами и рекомендациями по процессу ревью кода внутри компании. Я решил, что такой полезной информацией надо поделиться с внешним миром. С благословения автора я публикую работу

Процесс ревью кода в HH.RU
Общие положения
  • Цели ревью

  • Подготовка к ревью

  • Выбор ревьюера

  • Процесс ревью, общие положения

  • Процесс ревью со стороны автора кода

  • Процесс ревью со стороны ревьюера

  • Использованные материалы и ссылки по теме





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

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

  • Ответственность провести задачу через ревью лежит на авторе задачи.

  • Любые изменения после ревью, например, правки во время тестирования, точно так же должны быть проревьюены.





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

  • Корректная история коммитов в Гите, с отражающими суть сообщениями, без временных коммитов.





  • рекомендации на Гитхабе, основанные на «блейме» затронутого кода.
  • После выбора ревьюера укажите его в качестве Assignee в пулл-реквесте. Список всех пулл-реквестов, которые на вас назначены.





  • перепишите историю коммитов (git rebase --interactive), внеся в отдельные коммиты соответствующие исправления и удалив временные коммиты. Обратите внимание на опцию --autosquash для упрощения процесса.




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

  • Обращайте внимание не только на то, что было изменено, но и на то, что не было изменено. Поищите и покажите автору код, который должен был быть изменён, но не был (забытые импорты или неиспользуемые классы, использование отрефакторенного кода в другом месте и прочее).

  • После внесения изменений автором кода проревьюйте исправления и повторно просмотрите весь пулл-реквест. Возможно, с учётом исправлений у вас появятся новые замечания или вопросы.

  • Не тратьте время на ревью кода, который не менялся в рамках задачи. Выделение части кода в функцию считается за изменение. Перенос кода «как есть» за изменение не считается. Реформат кода в затронутом файле на усмотрение автора.

  • Ревьюер не правит самостоятельно код в ветке, потому что ему так хочется или проще. Изменения вносит автор кода.

  • Если взялись ревьюить, старайтесь не затягивать и не переключаться на другие задачи в ущерб текущей





  • Code Review Best Practices от Кевина Лондона
  • Why code review matters? от Антона Кузнецова

  • Code Reviews Can Make or Break Your Team от Амира Ясина

  • The Ethics of Code Reviews от Марко Троиси

  • Effective Code Reviews Without the Pain от Роберта Боуга

  • MDN — Code Review FAQ от Марсии Нюс и других

  • How to create a good pull request

  • How to perform a good code review

  • Top ten pull request review mistakes от Скота Нонеберга

  • Code review in remote teams от Шона Хаммонда

  • May the Code Review be with you от Егора Толстого

  • Как я научился делать мир лучше в HeadHunter от Ивана Баранова





  • P. S. Делитесь в комментариях своими правилами, рекомендациями и полезными юзкейсами по процессу ревью

    Источник: Хабр / Интересные публикации

    Категория: Веб-разработка

    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent