it Новости 9 отличных сервисов для проверки кода
9 отличных сервисов для проверки кода

9 отличных сервисов для проверки кода

33 385
11 августа 2020 в 16:19

Работу программиста можно оценивать по многим критериям, но главные – это, наверно, чистота кода и его качество. Мы рассмотрим 9 сервисов для проверки кода.

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


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


Reshift

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



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


Основной функционал:

  • Интеграция с крупнейшими веб-сервисами для хостинга проектов Github и Bitbucket.
  • Pull request'ы без необходимости переключаться между дашбордами для избежания путаницы.
  • Анализ каждой ветки на наличие уязвимостей.
  • Умная маркировка ошибок и проблемных мест.
  • Демонстрация критических уязвимостей до слияния веток.


Collaborator

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



Основной функционал:

  • Контролирование внесенных в код изменений, обнаружение проблем и написание комментариев.
  • Разработка правил и создание уведомлений, основанных на этих правилах.
  • Наличие кастомных полей, контрольных списков и группы участников.
  • Персонализированные отчеты.
  • Интеграция с одиннадцатью различными средами, включая Visual Studio.


Codestriker

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



Основной функционал:

  • Фиксирование обнаруженных проблем и решений (с комментариями) в БД. В дальнейшем к базе можно возвратиться и просмотреть все внесенные изменения.
  • Совместимость с системами ClearCase, Bugzilla и др.


Gerrit

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



Основной функционал:

  • Совместимость с Git.
  • Возможность настроить иерархию кода.
  • Создание комментариев для внесенных изменений.
  • Система голосований о правках.


Crucible

Приложение, которое в онлайн-режиме позволяет делать ревью кода, находить проблемы, обсуждать изменения в каждой отдельной ветке, осуществлять шеринг данных и пр. Это платный сервис с двумя версиями: для маленьких команд и крупных корпораций. Первая стоит 10 долларов и предоставляет безлимитные репозитории на пятерых пользователей. Стоимость корпоративной версии составляет 1100 долларов и включает безлимитный репозиторий на десятерых пользователей. Существует также демо-доступ – он дается на 30 суток.



Основной функционал:

  • Взаимодействие как нескольких программистов, так и многочисленных групп разработчиков.
  • Возможность ревизии кода как до правок, так и после них.
  • Интегрирование с Subversion, P4 и CVS.


GitHub

Каждый разработчик знает, что такое GitHub. Но что этот сервис может делать автоматическую проверку кода, известно далеко не всем. В данном плане имеется 2 версии: бесплатная с ограниченным числом пользователей и платная, стоимостью 7 долларов в месяц.


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



Основной функционал:

  • Лобовое сравнение фрагментов.
  • Blame view – просмотр истории единичных фрагментов кода, не просматривая документ полностью.
  • Формирование white-листов для отдельных веток. 


Review Board

Этому сервису уже около 10 лет, тем не менее, он продолжает развиваться и совершенствоваться. Проект бесплатный, можно испытать демо на официальном сайте или установить Review Board на собственном сервере. Большой плюс инструмента в том, что он позволяет напрямую сравнивать 2 версии кода: до изменений и после. К тому же не может не радовать простой интерфейс. 



Основной функционал:

  • Совместимость с Plastic, P4, CVS и ClearCase.
  • Выделение проблемных участков кода или фрагментов по заданным параметрам.
  • Осуществление проверки кода до внесения изменений и после.


Rhodecode

Платный сервис с поддержкой Mercurial, Git, а также Subversion. Стартовая цена – 8 долларов в месяц для каждого пользователя. Можно оплатить сразу весь год, так будет экономнее, потому что цена составит 75 долларов. Те, кто не хочет тратить деньги, могут скачать community-edition и установить ее на собственном сервере.



Основной функционал:

  • Визуальный журнал изменений.
  • Online-редактор кода.
  • Возможность интеграции с уже созданными проектами.
  • Совместной работа группы разработчиков: как нескольких человек, так и многочисленных команд.


Phabricator

Очередной набор инструментов с открытым исходным кодом, которые облегчают процесс code review. Есть облачная версия, но она с ограничениями, стоит 20 долларов в месяц. Цена полной версии достигает 1000 долларов в месяц (есть несколько и более дешевых предложений). Все платные продукты включают техподдержку и 30-дневный демо-режим. 



Основной функционал:

  • Совместимость с Git, Mercurial и Subversion.
  • Наличие встроенных чатов, Kanban доска и пр.
  • API для написания скриптов, которые взаимодействуют с системой посредством JSON API.


В завершение

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

Больше интересных новостей

Комментарии (1)
Добавить комментарий

Максим 18 апреля 2025 в 11:17

#include <windows.h>

struct Vertex {
float x, y, z;
};

struct Face {
int v1, v2, v3;
};

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_LBUTTONDOWN:
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}

void projectVertex(Vertex&amp; vertex, float* projectionMatrix, float* projected) {
float x = vertex.x;
float y = vertex.y;
float z = vertex.z;

projected[0] = x * projectionMatrix[0] + y * projectionMatrix[1] + z * projectionMatrix[2];
projected[1] = x * projectionMatrix[4] + y * projectionMatrix[5] + z * projectionMatrix[6];
projected[2] = x * projectionMatrix[8] + y * projectionMatrix[9] + z * projectionMatrix[10] + projectionMatrix[11];

projected[0] /= projected[2];
projected[1] /= projected[2];
}

int main() {
Vertex vertices[] = {
{0.0f, 1.0f, 0.0f},
{1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 1.0f},
{-1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, -1.0f},
{0.0f, -1.0f, 0.0f}
};

Face faces[] = {
{0, 1, 2},
{0, 2, 3},
{0, 3, 4},
{0, 4, 1},
{5, 1, 2},
{5, 2, 3},
{5, 3, 4},
{5, 4, 1}
};

WNDCLASS wc = {0};
wc.lpfnWndProc = WindowProc;
wc.hInstance = GetModuleHandle(0);
wc.hCursor = LoadCursor(0, IDC_ARROW);
wc.lpszClassName = "OctahedronWindow";
RegisterClass(&amp;wc);

HWND hwnd = CreateWindow("OctahedronWindow", "3D Octahedron", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, 0, 0, GetModuleHandle(0), 0);

MSG msg;
while (GetMessage(&amp;msg, 0, 0, 0)) {
TranslateMessage(&amp;msg);
DispatchMessage(&amp;msg);
}
return 0;
}
Ответить