Читать нас в Telegram

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

Рубрика: Переводы
,
10778

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

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

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

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

AccessLint

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

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

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

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

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

Плюсы

Минусы

Стоимость

Imgbot

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

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

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

Плюсы

Минусы

Стоимость

LGTM

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

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

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

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

Плюсы:

Минусы:

DeepSource

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

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

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

Плюсы

Минусы

Стоимость

Codelingo

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

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

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

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

Плюсы

Минусы

Стоимость

DeepScan

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

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

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

Плюсы

Минусы

Стоимость

CodeScene

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

Плюсы

Стоимость

FeaturePeek

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

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

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

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

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

Плюсы

Стоимость

***

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

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Honor Cup, бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Перевод статьи «The 8 Best Tools For Code Review In 2020»