PHP Profi

12 лучших инструментов для ревью кода для разработчиков (2020) Перевод

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

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

В этой статье мы объясним, что такое код-ревью и изучим популярные инструменты, которые помогают организациям с данным процессом.

Содержание

  1. Что такое процесс ревью кода?
  2. Почему код-ревью критичен?
  3. Как выполнить ревью кода?
  4. Почему Вам стоит использовать инструменты для код-ревью?
  5. Более детальный взгляд на 12 мощных инструментов для ревью кода

Что такое процесс ревью кода?

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

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

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

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

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

Code Review Process

-Старайтесь сохранить информативность обратной связи

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

Почему ревью кода критичен?

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

Код-ревью критичен, потому как призван:

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

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

Как выполнить ревью кода?

Существует четыре способа произвести код-ревью.

Ревью "Из-за Плеча"

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

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

Почтовая Рассылка

Хотя код-ревью, проводимые "из-за плеча" - это отличный способ проверить новый код, географически удаленные команды по традиции опирались на электронную почту для ревью кода.

В таком процессе ревью разработчик отправляет diff изменений всей команде разработчиков, как правило, с помощью системы контроля версий (VCS), которые автоматизируют уведомления. Такое сообщение инициирует обсуждение изменений, где члены команды могут запросить будущие изменения, указать на ошибки или запросить уточнения.

Email Pass Around

-Почтовая рассылка через Google Groups на каждый новый push

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

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

Парное Программирование

 

Pair Programming

-Парное программирование порой может быть неэффективно

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

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

С Помощью Инструментов

 

Такой вид код-ревью включает в себя использование специализированного программного обеспечения (ПО) в целях облегчения процесса ревью кода. Обычно инструмент помогает со следующими задачами:

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

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

Почему Вам стоит Использовать Инструменты для Код-ревью?

 

Главный результат процесса ревью кода - увеличение эффективности. Хотя все вышеперечисленные классические методы ревью кода работали в прошлом, вы можете потерять эффективность, если не перешли на ревью с помощью инструментов. Они автоматизируют процесс ревью кода, так что ревьюер фокусируется непосредственно на самом коде.

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

К примеру, если Вы используете Git для менеджмента кода, TravisCI для непрерывной интеграции, то убедитесь, что Вы выберете инструмент, который поддерживает эти технологии и подходит для процесса разработки.

Есть два типа тестирования кода в разработке ПО: динамическое и статическое.

Динамический анализ включает в себя проверку кода на следование набору правил и проведение unit-тестов, обычно с помощью предопределенного скрипта. Статическое тестирование кода проделывается после того как разработчик пишет новый код для присоединения к текущему коду.

 

Теперь давайте рассмотрим одни из самых популярных инструментов для код-ревью.

Более Детальный Разбор 12 Мощных Инструментов для Код-ревью

В этом разделе мы будем обозревать самые популярные статические инструменты для код-ревью.

  1. Review Board
  2. Crucible
  3. GitHub
  4. Phabricator
  5. Collaborator
  6. CodeScene
  7. Visual Expert
  8. Gerrit
  9. Rhodecode
  10. Veracode
  11. Reviewable
  12. Peer Review для Tac

1. Review Board

 

Review Board - это сетевое, open-source решение для ревью кода. Чтобы протестировать этот инструмент, можете либо попробовать демо на их сайте, либо загрузить и установить программу на вашем сервере.

Code review tools: Review Board Overview

-Обзор Review Board

Язык программирования Python и его установщики, MySQL или PostgreSQL в качестве базы данных, и веб-сервер - таковы требования для использования Review Board на сервере.

Вы можете внедрить Review Board с широким охватом систем контроля версий — Git, Mercurial, CVS, Subversion и Perforce. Также можете связать Review Board с Amazon S3 для хранения скриншотов непосредственно в инструменте.

Review Board Changes Overview

-Обзор изменений в Review Board

Review Board позволяет выполнять как pre-commit, так и post-commit код-ревью в зависимости от требований. Если вы не интегрировали систему контроля версий, можете использовать diff-файл для загрузки изменений кода в инструменте для ревью.

Графическое сравнение изменений в коде также предоставлено. Вдобавок к ревью кода, Review Board позволяет проводить ревью документов.

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

Review Board – простой инструмент для код-ревью, который можно хостить на своём сервере. Вам стоит попробовать его, если не хотите хостить свой код на публичном веб-сайте.

2. Crucible

 

Crucible – это коллаборативная программа для ревью кода от Atlassian. Она представляет собой коммерческий набор инструментов, позволяющий вам проводить код-ревью, обсуждать планы и изменения, а также обнаруживать баги через множество систем контроля версий.

Crucible предоставляет два платежных плана, один для небольших команд, а другой – для организаций. Небольшой команде необходимо произвести единоразовый платеж размером в $10 для неограниченного количества репозиториев на 5 пользователей. Для больших команд, платежи начинаются от $1100 на 10 пользователей и неограниченного количества репозиториев.

В обоих случаях вам предлагается 30-дневный бесплатный период без требования данных вашей карты.

Code review tools: Crucible Code Review Tool

-Crucible (Источник)

Схоже с Review Board, Crucible поддерживает большое количество систем контроля версий – SVN, Git, Mercurial, CVS и Perforce. Базовая функция – позволить проводить ревью кода. Вдобавок к общим комментариям к коду, он позволяет писать inline-комментарии внутри diff view, чтобы точно указать на то, что вы хотели сказать.

Crucible хорошо внедряется с другими продуктами для организаций от Atlassian, например Confluence и Enterprise BitBucket. Хотя, возможно, вы получите наибольшую пользу от Crucible, используя его вместе с Jira, Issue от Atlassian и Project Tracker. Это позволит выполнять pre-commit-ревью и аудиты добавляемого кода.

3. GitHub

 

Если вы используете GitHub для поддержания ваших Git-репозиториев в облаке, то вы, вероятно, уже использовали форки (forks) и pull-запросы (pull requests) для ревью кода.

Code review tools: GitHub Code Review Tool within a Pull Request

-GitHub в Pull-запросе

GitHub имеет встроенный инструмент для код-ревью в pull requests. Инструмент для ревью кода прилагается в связке с базовым сервисом GitHub, который предлагает бесплатный план для разработчиков. Бесплатный план ограничивает количество пользователей до трех в приватных репозиториях. Платные планы начинаются от $7 в месяц.

GitHub позволяет ревьюеру, который имеет доступ к репозиторию, "привязывать" себя к pull-запросам и завершать ревью. Разработчик, который принял pull request, может также запросить ревью у администратора.

В дополнение к обсуждению на общем pull-запросе, вы можете анализировать diff, писать строчные (inline) комментарии, и проверять историю изменений. Инструмент ревью кода также позволяет разрешать простые конфликты в Git через веб-интерфейс. GitHub даже позволяет интегрировать дополнительные инструменты для ревью через маркетплейс, для большей надежности.

Ревью кода в GitHub - это отличный инструмент, если вы уже пользуетесь платформой. Он не требует никаких дополнительных установок или настройки. Основная проблема с инструментом код-ревью в GitHub - это то, что он поддерживает только git-репозитории, размещенные на GitHub. Если вы ищете похожий инструмент для ревью кода, который можно скачать и хостить на своем сервере, можете попробовать GitLab.

4. Phabricator

 

Phabricator - это набор инструментов с открытым исходным кодом от Phacility, которые помогут вам в ревью кода. В то время как вы можете скачать и установить набор софта для ревью кода на своём сервере, Phacility также предоставляет хостируемую в облаке (cloud-hosted) версию Phabricator.

Ограничений, если установить его на своем сервере нет. Впрочем, вам будет выставлен счёт в $20 на каждого пользователя в месяц (с верхним краем в $1000/месяц), также получая при этом поддержку. Также имеется 30-дневный бесплатный пробный период.

Code review tools: Core review tools: Phabricator

-Phabricator

Phabricator поддерживает три самых популярных системы контроля версий — Git, Mercurial, и SVN. С его помощью можно управлять локальными репозиториями и отслеживать внешне размещенные репозитории. Также, можете масштабировать его до нескольких серверов.

Свыше стандартного инструмента ревью кода

 

Phabricator предоставляет детализированную платформу для общения с участниками команды. Вы можете либо совершить pre-commit ревью нового сотрудника, либо провести ревью на недавно представленный код. Также можете провести ревью на присоединенный (merged) код, такая функция называется “аудит”. Вот сравнение между код-ревью и аудитом в Phabricator.

Дополнительные инструменты Phabricator помогают в общем цикле разработки программного обеспечения. Например, он предоставляет встроенный трекер, чтобы отслеживать баги и особенности. Вы также можете создать вики-страницу для своего программного обеспечения через Phriction. Для того чтобы интегрировать инструмент в юнит-тесты, можете использовать инструмент CLI. Помимо этого, вы можете строить приложения через Phabricator с помощью его API.

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

5. Collaborator

 

Collaborator от SmartBear - это инструмент для ревью кода и документов для команд разработчиков. В дополнение к ревью исходного кода, Collaborator позволяет командам провести ревью проектной документации. Лицензионный пакет на 5 пользователей оценивается в $535 в год. Бесплатная пробная версия доступна исходя из ваших бизнес-требований.

Code review tools: Collaborator Review

-Collaborator Review Source

Collaborator поддерживает большое количество систем контроля версий как Subversion, Git, CVS, Mercurial, Perforce, и TFS. Он хорошо справляется с интеграцией в популярные инструменты управления проектами и IDE (интегрированные среды разработки), такие как Jira, Eclipse, и Visual Studio.

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

6. CodeScene

 

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

  1. Облачные планы CodeScene бесплатны для публичных репозиториев, размещенных на GitHub. До десяти приватных репозиториев и для команды из десяти участников, CodeScene предлагается за €99 (около $115) в месяц. Локальная установка CodeScene обойдется в €15 (около 17$) на одного разработчика в месяц.

Code review tools: CodeScene Code Review Tool Analysis

-Анализ в ревью кода CodeScene

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

Через историю контроля версий CodeScene профилирует каждого члена команды, чтобы отрисовать диаграмму их базы знаний и создания внутрикомандных зависимостей. Он также вводит концепцию хот-спотов (hotspots) в репозитории путем определения файлов, которые подвергаются наиболее активной разработке.Эти хот-споты требуют высокого внимания в дальнейшем.

-Knowledge-диаграммы CodeScene

-Knowledge-диаграммы в CodeScene

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

7. Visual Expert

 

Visual Expert - это решение уровня предприятия для ревью кода, специализирующееся в коде баз данных. Он имеет поддержку только трех платформ: PowerBuilder, SQL-сервер, и Oracle PL/SQL. Если вы используете любую другую СУБД, то не сможете внедрить Visual Expert для код-ревью.

Бесплатная пробная версия доступна, но для этого нужно отправить запрос, чтобы узнать цену.

Visual Expert Code Review Tool Overview

-обзор Visual Expert (Источник)

В дополнение к традиционному код-ревью, Visual Expert анализирует каждое изменение в коде, чтобы предвидеть возможные проблемы с его исполнением в связи с изменениями. Также, инструмент может автоматически генерировать полную документацию приложения из кода.

Если вы используете PowerBuilder, SQL-сервер или Oracle PL/SQL и хотели бы специализированный инструмент для ревью кода для ваших потребностей, стоит попробовать Visual Expert.

8. Gerrit

 

Геррит - это бесплатный веб-инструмент с открытым исходным кодом для Git-репозиториев, написанных на Java. Для запуска Gerrit Вам нужно скачать исходный код и запустить его в Java. Вот процесс установки standalone-версии Gerrit.

Gerrit Code Review Tool

-Gerrit

Gerrit сочетает в себе функциональность багтрекера и инструмент для код-ревью. В ходе ревью изменения отображаются бок-о-бок в едином diff, с возможностью начать обсуждение по каждой добавленной строке кода. Этот инструмент работает как промежуточный этап между разработчиком и центральным репозиторием. Кроме того, Gerrit также включает в себя систему голосования.

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

9. Rhodecode

 

Rhodecode - это веб-инструмент, который помогает в проведении ревью кода. Он поддерживает три системы контроля версий: Mercurial, Git и Subversion. В облачной версии стоимость Rhodecode начинается от $8 на пользователя в месяц, в то время как локальное решение стоит $75 на одного пользователя в год. Хотя это программное обеспечение предназначено для предприятий, его комьюнити-версия, которая является бесплатной и с открытым исходным кодом, может быть загружена и скомпилирована бесплатно.

Code review tools: Rhodecode

-Rhodecode

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

Кроме того, визуальный changelog (история изменений) помогает вам ориентироваться в истории вашего проекта в различных ветках. Онлайн-редактор кода также предоставлен для внесения небольших изменений через веб-интерфейс.

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

10. Veracode

 

Veracode предоставляет набор инструментов для код-ревью, которые позволяют автоматизировать тестирование, ускорить разработку, интегрировать процесс обновления и повысить эффективность проекта. Набор инструментов для код-ревью от Veracode позиционируется как решение по безопасности, которое ищет уязвимости в ваших системах. Они представляют собой набор из двух инструментов для ревью кода:

  • Статический анализ: инструмент, который позволяет разработчикам выявлять и исправлять недостатки безопасности в коде.
  • Анализ Состава ПО: инструмент, который управляет процессами обновления и смягчения недостатков в коде.

Veracode Overview

-Обзор Veracode (Источник)

Ревью кода является частью Анализа Состава ПО, и вы можете выбрать демо-версию Veracode перед полным переходом на данный инструмент. Вот ссылка для запроса котировки.

11. Reviewable

 

Reviewable - это инструмент для код-ревью для pull-запросов GitHub. Он является бесплатным для репозиториев с открытым исходным кодом. Планы для приватных репозиториев начинаются от $39 в месяц для десяти пользователей. Поскольку инструмент объединен с GitHub, Вы можете авторизоваться при помощи вашей учетной записи GitHub и начать работу.

Reviewable Code Review Tool Overview

-Обзор Reviewable

Если хотите взглянуть на типичный ревью в Reviewable, можете попробовать демо код-ревью.

Интересный момент в Reviewable заключается в том, что он преодолевает некоторые недостатки ревью кода в pull-запросах GitHub. Например, комментарий на строке кода автоматически скрывается GitHub'ом, когда разработчик меняет строку, потому что GitHub предполагает, что проблема была устранена. Но, в реальности, это не всегда так.

Кроме того, GitHub имеет сравнительно низкие лимиты строк для отображения diff 'ов в файле.

Если Вы ищете инструмент, который тесно согласован с GitHub, но хотите больше возможностей, чем простые pull-запросы, Reviewable - ваш выбор.

12. Peer Review для Trac

 

Если вы пользуетесь Subversion, Peer Review Plugin для Trac предоставляет бесплатный и открытый вариант проведения код-ревью на проектах. Плагин Peer Review интегрируется в Open-source-проект Trac, который представляет собой Вики-страницу и систему отслеживания вопросов (issues) для разработки проектов.

Peer Review Plugin for Trac Review

-Обзор Peer Review Plugin для Trac (Источник)

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

Например, вы можете назначить задачи, которые можно решить, на такие триггеры, как принятие изменения или подтверждение в код-ревью. Вы также можете создавать настраиваемые репорты на свои проекты.

Также, если ищете Вики для документации и трекера проблем для управления "дорожной картой" (roadmap) проекта, Trac - хороший вариант.

Итог

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

Мы присмотрелись к самым популярным инструментам для код-ревью, доступным в 2020 году, и вот что мы нашли:

  • Для небольшой начинающей команды, Review Board - хороший выбор для инициации процесса ревью кода.
  • Если ищете инструмент с открытым исходным кодом, попробуйте Gerrit, Peer Review для Trac или комьюнити-версию Rhodecode.
  • Ищете довольно простой в использовании инструмент для код-ревью с поддержкой? Вам стоит попробовать Rhodecode.
  • Если вы используете Git и GitHub для управления кодовой базой, попробуйте встроенный редактор для ревью кода GitHub. Если хотите выйти за базовые возможности pull-запросов, Вам стоит взглянуть на Reviewable.
  • Принадлежите к команде, которая использует Oracle, SQL-сервер или PowerBuilder для управления кодом в базе данных? Вы можете опробовать Visual Expert, инструмент для ревью, который специализируется на коде баз данных.
  • Если вы ищете корпоративное решение, попробуйте Crucible от Atlassian, Collaborator от SmartBear, или Veracode.
  • В случае, если хотите использовать ML и AI, чтобы выйти за пределы стандартного код-ревью и получить поведенческий анализ, взгляните на CodeScene.
  • Если нужно полное решение для вашего цикла разработки ПО, попробуйте набор инструментов Phabricator для код-ревью и не только.

Теперь ваша очередь: какой инструмент для ревью кода используете? Почему? Расскажите нам в комментариях!


 

2020-10-23 оригинал

Последние посты

Комментарии

авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий