качественно и безболезненно
Идеально - Вся команда
Минимум - 3 человека
(включая лида команды)
Технические факты
отменяют личные предпочтения
Руководство по стилю является абсолютным авторитетом
Любая чисто стилевая точка зрения (пробелы, переносы строк и т. д.), которой нет в руководстве по стилю, является вопросом личных предпочтений.
Аспекты разработки программного обеспечения почти никогда не являются чисто стилевым вопросом или личным предпочтением
Если никакое другое правило не применяется, тогда можно попросить автора соответствовать стилю, который принят в текущей кодовой базе, если это не ухудшает общее состояние кода
Самая важная вещь в ревью - это оценка общего дизайна PR.
обычно означает, что «код не может быть быстро прочитан и понят»
- это реализация более универсального кода, чем нужно, или добавленная функциональность, которая на данный момент системе не нужна
- это код, который необходимо поддерживать
На сколько информативны имена переменных, методов и т.д.?
достаточно длинное, чтобы полностью передать, что представляет из себя предмет или что делает функция, но не настолько длинное, чтобы его стало трудно читать
В комментариях нет необходимости, если код простой и самодокументируемый
(но так происходит не всегда)
Оставил ли разработчик комментарии к сложным участкам кода? Если да, то это повод задуматься над таким участком. Возможно у того, кто делает ревью, появится идея, как сделать проще.
Если вы понимаете код, но не чувствуете себя достаточно компетентным для проверки какой-либо части, то пригласите в PR проверяющего, кто обладает соответствующей квалификацией
Если вы видите что-то хорошее в PR, сообщите об этом автору. На код ревью часто просто фокусируются на ошибках, но также полезно отмечать хорошие стороны разработки. Иногда с точки зрения наставничества даже более ценно рассказать разработчику, что он сделал правильно, чем рассказать ему, что он сделал неправильно
Делая код ревью, убедитесь, что:
Код хорошо спроектирован
Функциональность действительно необходима пользователям кода и приложения
Любые изменения в интерфейсе разумны и выглядят хорошо
Любое асинхронное программирование выполняется в правильном порядке и не порождает необработанных исключений
Код не сложнее, чем должен быть
Разработчик не реализует вещи наперёд без четкого понимания и требований к их использованию
Код покрыт тестами
Тесты хорошо продуманы, корректны и полезны
Разработчик использовал подходящие имена для всего
Комментарии понятны и полезны, и в основном объясняют причину, а не то, что сделано
Код надлежащим образом документирован
Код соответствует нашим руководствам по стилю
- помочь автору, проекту, команде
Отвечать на вопросы в PR - это проявление ответственности и профессионализма
Объяснить выбранное решение, либо задать уточняющий вопрос
commit, push, approve