Code review. Как правильно его делать и для чего это нужно

Зачем и почему надо делать код ревью

  • Может помочь уменьшить количество ошибок в коде.
  • Поможет убедиться, что все требования по оформлению кода соблюдены.
  • Это эффективный способ обучиться чему-нибудь новому у своих коллег и ознакомиться с данной базой кода.
  • Помогает придерживаться единого стандарта по оформлению кода всей вашей команде.
  • Сплачивает команду — code rewiew стимулирует разработчиков общаться друг с другом и вместе придумывать решения проблем.
  • Улучшает общее качество кода.

На что обращать внимание при просмотре

  • Код хорошо спроектирован
  • Функциональность хорошо сделана с точки зрения пользователей этого кода, кем бы они ни были.
  • Внешний вид (если есть) должен быть хорошим
  • Учтены все нюансы параллельного программирования (если есть).
  • Код не переусложнен
  • Разработчик не оверинженирит: не нужно писать код, который может понадобиться, а может не понадобиться
  • У кода есть тесты
  • Тесты хорошо спроектированы
  • Наименования (для всего) выбраны хорошо
  • Комментарии к коду понятны и необходимы. Они должны объяснять, почему так сделано, а не как это сделано.
  • Добавлена документация.
  • Код соответствует стайл гайдам.

Как писать комментарии на код ревью

  • Нужно быть вежливым, не переходить на личности. Обсуждать код, а не кодера.
  • Не просто выдавать директивы к исправлениям, а объяснять, почему нужно исправить.
  • Соблюдать баланс: обозначить проблему и подтолкнуть разработчика, чтобы он сам понял, как лучше ее решить; или же сразу выдать готовое решение. Первое развивает разработчика (стратегическая выгода), второе улучшает и ускоряет ревью кода (тактическая выгода).
  • Если ревьювер не понял какой-то момент в коде и просит автора объяснить, что к чему, то лучшим ответом будет изменение кода. Так, чтобы было по коду все было понятно без вопросов.
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

10 часов ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

10 часов ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

10 часов ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

10 часов ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

10 часов ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

10 часов ago