Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Code review без ревьювера: 8 инструментов, которые помогут улучшить код

Отредактировано

Code review — штука важная, но времзатратная. Рассказываем об инструментах, которые сами проанализируют код и укажут в нём слабые места.

18К открытий19К показов

Автор перевода Мария Багулина

Все любят конструктивные code review. Они помогают улучшить качество кода, что в конечном счёте повышает надёжность продукта. Но многим не нравится, что процесс code review часто затягивается и pull request’ы принимаются крайне медленно.

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

Эти инструменты будут полезны не только тем, кто проводит code review, но и разработчикам, которые хотят улучшить свой код и найти в нём слабые места или возможные проблемы. Многие из продуктов доступны в GitHub Marketplace и бесплатны для opensource и частных проектов.

AccessLint

Насколько хорошая доступность у вашего программного обеспечения?

Скорее всего, вы не знаете ответ. Хотя стандарты веб-доступности хорошо документированы, они редко являются частью code review.

Исправить это призван AccessLint, который автоматически запускает серию тестов и комментирует ваш pull request, предлагая решить проблемы с доступностью (если они есть). Сюда также входят проверки доступности для людей с временными недугами (например сломанной рукой) или незначительными заболеваниями.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 1

Если вы ещё не задумывались о доступности вашего продукта, то самое время начать. Во многих странах это является юридическим требованием. В США подают иски против веб-сайтов, которые не соответствуют рекомендациям ADA (Americans with Disabilities Act). В Великобритании доступность веб-ресурсов защищается Законом о равенстве (Equalities Act).

А теперь к преимуществам и недостаткам AccessLint.

Плюсы

  • мгновенная проверка WCAG 2.0 для общих проблем доступности;
  • можно добавить через GitHub Marketplace.

Минусы

  • охватывает только основные проблемы доступности;
  • ограниченная поддержка типов файлов (Haml, HTML, ERB/​​Rails).

Стоимость

  • бесплатно для проектов с открытым исходным кодом;
  • бесплатно для образовательных учреждений;
  • 49 $ в месяц для неограниченного числа открытых и приватных репозиториев.

Imgbot

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

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

Imgbot — простой и эффективный инструмент, который позволяет без потерь сжимать все изображения в ваших репозиториях.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 2

Плюсы

  • автоматически оптимизирует изображения без потерь, но при необходимости можно установить более агрессивное сжатие;
  • после настройки не требует никаких действий — просто принимайте входящие pull request’ы.

Минусы

  • высокая стоимость для небольших команд;

Стоимость

  • бесплатно для проектов с открытым исходным кодом;
  • 10 $ в месяц для персональных приватных проектов;
  • 30 $ в месяц для коммерческих проектов.

LGTM

LGTM — платформа для анализа кода, которая фокусируется на поиске критических уязвимостей и предотвращении проблем.

LGTM проводит более чем 1600 тестов, и, находя проблему, автоматически помечает её в pull request.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 3

LGTM очень хорошо справляется со своей работой благодаря исследованиям команды в области безопасности, которая на текущий момент нашла более ста CVE (Common Vulnerabilities and Exposures) в таких больших проектах, как UBoot, Apache Struts, ядро ​​Linux, Memcached, VLC и Apple XNU.

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

Плюсы:

  • широкая поддержка языков программирования, включая Си, C++, Java, JavaScript и Python;
  • высокий уровень обнаружения уязвимостей и проблем с кодом.

Минусы:

  • нет поддержи Go (для него можно использовать DeepSource, о котором написано ниже).

DeepSource

DeepSource используется такими компаниями, как NASA, Uber и Slack. Он автоматически обнаруживает уязвимости и проблемы с документированием кода.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 4

Примеры анализируемых проблем:

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

DeepSource автоматически добавляет аннотации и комментарии к pull request’ам, облегчая обнаружение проблем и гарантируя безопасность конфиденциальных данных. Это ускоряет процесс code review и обеспечивает более высокое качество проекта.

Плюсы

  • даёт мгновенную обратную связь в дружественной форме;
  • простой в использовании веб-интерфейс.

Минусы

  • только для Python и Go.

Стоимость

  • бесплатно для проектов с открытым исходным кодом;
  • от 12 $ в месяц для приватных репозиториев.

Codelingo

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

Codelingo позволяет устанавливать и проверять стандарты качества программно в файле codelingo.yaml.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 5

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

Если в pull request’e не соблюдаются правила, Codelingo автоматически оставляет комментарии и отправляет уведомление.

Плюсы

  • можно определять особые стандарты качества кода;
  • автоматическое исправление мелких недочётов в коде.

Минусы

  • поддерживает только PHP, Python, Go и C#.

Стоимость

  • бесплатно для публичных репозиториев;
  • 5 $ в месяц на каждого члена организации, включая помощь в написании стандартов.

DeepScan

DeepScan — усовершенствованный инструмент статического анализа, который поддерживает JavaScript, TypeScript, React и Vue.js.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 6

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

Система оценивания DeepScan присваивает проектам оценки: «Плохо», «Нормально» или «Хорошо».

Плюсы

  • специальные инструменты для проектов на JavaScript, TypeScript, React и Vue.js;
  • простая система оценок для обратной связи.

Минусы

  • ограничения по языковой и библиотечной поддержке.

Стоимость

  • бесплатно для проектов с открытым исходным кодом;
  • от 15.96 $ за сотрудника в месяц.

CodeScene

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

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 7

Плюсы

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

Стоимость

  • бесплатный анализ до 5 проектов;
  • от 249 $ в месяц за неограниченное число репозиториев.

FeaturePeek

FeaturePeek — инструмент для предварительной сборки и развёртывания ПО.

Code review без ревьювера: 8 инструментов, которые помогут улучшить код 8

Один из самых утомительных этапов code review — локальный запуск ветвей ваших коллег для проверки корректной работы их кода.

Правда, этот шаг иногда просто пропускается теми специалистами, которые не разбираются в Git или фронтенд-разработке (например дизайнерами или менеджерами по продукту).

Благодаря автоматическому предварительному развёртыванию каждого pull request’а те, кто выполняет code review, смогут просто нажать на ссылку и посмотреть, как работает код, прежде чем выполнить merge.

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

Плюсы

  • предварительное развёртывание каждого pull request’а;
  • удобный виджет для отзывов в каждом превью;
  • независимый PaaS, работает со статическим и докеризированным фронтендом.

Стоимость

  • бесплатно для проектов с открытым исходным кодом;
  • 19 $ за человека в месяц для приватных репозиториев (16 $ в месяц за пользователя на годовом тарифе).

А какими инструментами для code review пользуетесь вы? Пишите в комментариях.

Следите за новыми постами
Следите за новыми постами по любимым темам
18К открытий19К показов