Больше, чем просто отлавливание ошибок

Что такое обзоры кода?

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

Идея этого потока состоит в том, чтобы гарантировать, что код, вводимый в проект, соответствует множеству ожиданий и стандартов, которые соблюдаются всеми членами команды. Применяемые требования часто включают стандарты стиля кодирования, модульное / другое тестирование и общее качество кода. Этот процесс также дает возможность выборочной проверки кода на наличие любых потенциальных ошибок, логических проблем или других проблем. Обычно для этих ворот утверждения требуется одобрение как минимум двух других инженеров, прежде чем изменения кода будут разрешены. Но все части этого процесса значительно различаются от команды к команде.

Обзоры кода не должны быть местом, где обсуждают отзывы о дизайне функций / реализации. Это должно произойти задолго до начала написания кода.

Какие еще преимущества они предлагают?

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

Обмен знаниями о проекте

Code Review - отличный способ сообщить подробные сведения о том, какие изменения происходят в проекте. Обмен знаниями через команду, а не их изолированность (наихудший случай - разрозненные), имеет очень ощутимое влияние на динамику проекта и его будущее. Для тех, кто в команде активно участвует в обзоре кода, он действует как новость или импульс изменений, вносимых в базу кода. Это позволяет инженерам быть в курсе того, как все работает, а также позволяет им планировать свою текущую и будущую работу с учетом этих изменений. Например, наблюдение за изменением области кода может помочь избежать конфликтов, если другой инженер собирается внести изменения в той же области. Кроме того, это может повлиять на детали реализации их следующей задачи, если будет перекрытие.

Вдобавок ко всему, если ваш проект включает в себя элемент ротации по вызову для обработки проблем / инцидентов на реальном сайте, то Code Review дает предупреждение об изменениях, которые будут развернуты в производственной среде. Дежурный инженер может использовать поток входящих изменений кода, чтобы повысить свою осведомленность о том, что меняется. Это помогает ускорить определение источника проблем, если в производственной среде начнутся отказы. Когда происходят инциденты, это часто происходит из-за изменений где-то в конвейере.



Возможности преподавать

Наличие шлюза, блокирующего внесение непроверенных изменений кода, помогает обеспечить работоспособность и качество кодовой базы. Но поддержание высокого качества кода требует непрерывного обучения и повышения квалификации всей команды. Code Review предоставляет прямой и понятный способ для старших членов команды обучать более молодых. Сама цель проверки кода - получить обратную связь и внести необходимые изменения до того, как код будет сочтен готовым. Такая ясность устраняет некоторые неудобные препятствия на пути предоставления обратной связи. В контексте Code Review обратная связь не является необоснованной или неспровоцированной критикой. Его ищут и обсуждают в общественных местах. Такая прозрачность помогает обеспечить конструктивную обратную связь и позволяет анализировать и критиковать саму обратную связь.

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

Возможности учиться

Получение конструктивных отзывов непосредственно о разрабатываемом вами коде - отличный способ сосредоточить внимание на качестве кода. Но Code Review предлагает и другие, более плодотворные способы обучения.

Проверки кода - прекрасная возможность для тех, кто плохо знаком с кодовой базой, увидеть, как работают более опытные в команде. Потратив время на изучение текущих и существующих обзоров кода, инженер может получить представление о том, как работает команда и как конкретные инженеры решают проблемы. Это хороший способ познакомиться с различными стилями кодирования, решениями проблем и шаблонами проектирования, а также с внутренней работой системы. А также соблюдать этикет команды, как в том, как они дают и получают обратную связь, так и в соответствии со стандартами кодирования и другими ожиданиями. В идеале, обзоры кода должны также предоставлять конкретный контекст наблюдаемого кода и обсуждение / обратную связь по сделанному выбору, вместо того, чтобы пытаться пробираться через огромную базу кода без руководства.

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