Улучшаем качество кода с помощью автоматических утилит

в 1:33, , рубрики: Программирование, я пиарюсь, метки:

Улучшаем качество кода с помощью автоматических утилитДостаточно большое число людей используют github для хранения исходного кода своих проектов. Идеология fork/pull request позволяет достаточно легко выполнять обзоры кода (code review). Обзоры кода в значительной степени позволяют поднять качество кодирования в проекте. Однако, часто человек выполняющий обзор кода вынужден заниматься проверкой стандартов кодирования принятых в проекте, и прочих очевидных вещей не связанных непосредственно с задачей решенной в pull запросе. Такие ошибки кодирования могут и должны быть обнаружены автоматически.

lint(likely to be bugs) программы предназначены для нахождения подозрительных и непереносимых участков кода. Современные lint — программы, зачастую исследуют в том числе на соответствие стандарту кодирования. Конечно каждый разработчик обязан установить на свой компьютер утилиту для проверки кода и создавать pull запросы только если код чист. Однако, проблемы интеграции, неправильной настройки, не внимательность или просто халатность приводят к тому, что стандарты кодирования нарушаются. В сети существует достаточное число утилит выполняющих проверку кода, все они разношерстны в плане настроек и выходных форматов. В мультиязыковой компании это приводит к тому, что настройка рабочего места становится не тривиальной задачей.

Предлагаю вашему вниманию сервис для автоматической проверки кода известными lint-утилитами. На данный момент поддерживаются:

Существует несколько способов использования этого сервиса. Вы можете просто попробовать и проверить любой pull запрос, для этого нужно вставить ссылку в соответствующее поле и нажать кнопку Advice.

Улучшаем качество кода с помощью автоматических утилит

После продолжительных раздумий, вы получите сформированный отчет по всем файлам из pull запроса.

Улучшаем качество кода с помощью автоматических утилит

Владельцы приватных репозиториев так же могут проверить свои pull запросы. Для этого нужно создать token доступа и вписать его в дополнительное поле формы. Если вас беспокоит здоровая форма паранои, то есть ещё возможность развернуть этот сервис у себя локально, кто заинтересовался прошу писать в личку.

Другой вариант использования сервиса, воспользоватся плагинами к браузерам Сhrome или Firefox. После их установки в браузере появится кнопка, при нажатии на которую будет выполняться проверка открытого на текущей странице pull запроса.

Но, самый лучший способ использования, настроить Post-Receive Hook для вашего репозитория. В этом случае после каждого обновления pull запроса, он будет проверяться, и на самой страничке запроса будет небольшое описание о качестве кода.

Например, хороший код:
Улучшаем качество кода с помощью автоматических утилит

А этот не очень:
Улучшаем качество кода с помощью автоматических утилит

Что бы настроить сервис на работу с вашим репозиторием, нужно создать WebHook URL http://unlint.org/github/hook/:token. Параметр :token нужен только для приватных репозиториев, что бы обеспечить доступ проверяющего сервиса. Кто не очень знаком с github api может воспользоваться формой для генерации curl запроса на создания WebHook URL.

ВАЖНО. Нельзя использовать форму в настройках вашего репозитория для создания WebHook URL потому, что она создает наблюдателя за вашими коммитами а не pull запросами, нужно использовать github api для создания WebHook URL наблюдающего за pull запросами.

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

unlint.github.com
Страничка проекта github

Почему сервис такой медленный

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

Я нашел ошибку/Нужно добавить проверку

Нужно написать мне, либо на github.

Мне нужны другие стандарты

Вы можете развернуть unlint локально и настроить любые проверки.

Безопасно ли использовать token для доступа к приватному репозиторию?

Нет, это не безопасно, т.к. данные передаются по незашифрованному каналу.

Как развернуть локально

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

Автор: Caiiiycuk

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js