Code Climate: особенности использования в разработке

Дата публикации:

Code Climate (СС) используется с единственной целью: помочь команде программистов писать чистый код. Переоценить его значимость для разработки очень сложно.  CC производит статический и автоматизированный анализ кода для Ruby on Rails, JavaScript, PHP (в бета-версии) или Python (в бета-версии), а затем предоставляет легко читаемые и действительно значимые выводы.

Как это работает

  • Шаг 1: Пуш коммита в репозиторий (поддерживаются Git репозитории).
  • Шаг 2: СС автоматически клонирует/вытягивает из хранилища и анализирует каждый коммит.
  • Шаг 3: Результаты анализа дают возможность отслеживать изменения в фиде, умные оповещения по электронной почте и интеграции уведомлений.

Хуки

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

  • Вебхуки — запросы от git сервера на СС endpoint url после пуша коммита в default branch.
  • Сервисные хуки — предназначены сугубо для Github. Они предоставляют более расширенный набор нотификаций для CC — события о пуше новой ветки, об открытии ПР и т.д.

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

На примере гитхаба

  1. Получаем API токен из профайла в СС;
    code-climate-1
  2. Добавляем айдишник репозитория из фида на CC

code-climate-2

  1. Создаем вебхук на github (админ справа в репозитории)

code-climate-3

Понятие оценок качества кода (ABC Metrics)

ABC метрика — часто используемая методика измерения размера программного обеспечения. Этот показатель является одним (хотя и не обязательно единственным) из способов, используемых CC для оценки сложности кода. Он показывает характеристику накапливания технического долга приложения.

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

  • количества присвоений в методе;
  • количества выходов из процедурного потока выполнения кода для выполнения кода, определенного в другом месте;
  • количества условных ветвлений if/elses, cases, try/catches, boolean tests, less than or equal to evaluations

Специально для Ruby используется модифицированный Flog gem:

  • оценка мета-кода
  • анализ дублирующихся фрагментов кода;

Понятие оценок качества кода (GPA)

GPA (grade point average) — система школьной оценки качества знаний. Демонстрирует общий уровень кода на основе средневзвешенных ABC-метрик всех существующих классов и методов приложения. При этом каждый отдельный issue (например: дублирование, сложности метода) имеет свой собственный вес, позволяющий нам вычислить их общую “стоимость”. Она демонстрируется на дэшборде приложения и может быть вынесена на гитхаб в качестве виджета.

code-climate-4

CC в качестве CI

СС способен интегрироваться с рядом CI продуктов: Semaphore, Solano Labs, Travis C., Jenkins. Он агрегирует данные о тестовом покрытии и отражает текущий статус билда проекта. Code Climate производит переоценку ABC-значений кода в ту или иную сторону, в зависимости от репорта CI-сервера. В итоге даже грамотно продуманный код может заслужить желтый флаг, как продукт, не прошедший тестирование в полном объеме.

Мы Крым Диджитал

С 2015 года мы предоставляем полный цикл услуг мобильной и веб-разработки клиентам из различных отраслей и разных стран.

Подпишись
на наши новости

Контакты пресс-службы

+ 7 (926) 118-80-32

WhatsApp, Viber, Telegram

Давайте обсудим Ваш проект

или свяжитесь с нами по почте projects@crimeadigital.ru

Нажимая кнопку «Отправить», вы даете согласие на обработку персональных данных

Крым Диджитал приняла участие в стратегической сессии

Руководители Крым Диджитал приняли участие в стратегической сессии, которая прошла на базе СевГУ 10 июня. Вместе с Правительством Севастополя, Институтом информационных технологий и управления в технических системах СевГУ и приглашенными ИТ-компаниями города обсудили перспективу развития системы высшего образования в Севастополе.Представители бизнеса, власти и образовательной системы выступали со своим видением будущих потребностей региона в кадрах, поднимали насущные вопросы обучения студентов, прохождения практики и дальнейшего трудоустройства. Крым Диджитал является амбассадором идеи образования и взращивания молодых кадров, развивает образовательные проекты и на протяжении 5 последних лет ведет активную работу в направлении поддержки и развития молодых специалистов ИТ-отрасли Крыма.

Руководители Крым Диджитал приняли участие в стратегической сессии, которая прошла на базе СевГУ 10 июня.

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

Крым Диджитал является амбассадором идеи образования и взращивания молодых кадров, развивает образовательные проекты и на протяжении 5 последних лет ведет активную работу в направлении поддержки и развития молодых специалистов ИТ-отрасли Крыма.

Выпуск курса Software Testing

Мы поздравляем выпускников нашего первого в этом году курса Крым Диджитал Академии по Software Testing! Всего курс успешно завершили 13 человек. В течение 2 месяцев несмотря на теплую погоду и манящее море ребята ответственно посещали занятия 2 раза в неделю, делали домашние задания и проверочные работы. Трое начинающих специалистов теперь стажеры нашей компании. Следующий курс намечен на август. Не пропусти анонс записи!

Мы поздравляем выпускников нашего первого в этом году курса Крым Диджитал Академии по Software Testing!

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

Следующий курс намечен на август. Не пропусти анонс записи!

Лицензия на образовательную деятельность

В 2022 году мы получили лицензию на образовательную деятельность по программам дополнительного профессионального образования! Теперь мы можем обучать специалистов по направлениям Ruby on Rails, ReactJS и Software Testing и выдавать удостоверения о повышении квалификации государственного образца.
В 2022 году мы получили лицензию на образовательную деятельность по программам дополнительного профессионального образования! Теперь мы можем обучать специалистов по направлениям Ruby on Rails, ReactJS и Software Testing и выдавать удостоверения о повышении квалификации государственного образца.

Мы вошли в Реестр эффективно и социально значимых предприятий.

По результатам ежегодной финансово-экономической аналитики Межотраслевой рейтинговой компании Крым Диджитал включена в Реестр эффективных и социально значимых предприятий. По итогу аналитики, в рамках отрасли (ОКВЭД 62.01) и региона Крым, CDG вошло в 4% лучших компаний страны, с результатом – 92 балла!
По результатам ежегодной финансово-экономической аналитики Межотраслевой рейтинговой компании Крым Диджитал включена в Реестр эффективных и социально значимых предприятий. По итогу аналитики, в рамках отрасли (ОКВЭД 62.01) и региона Крым, CDG вошло в 4% лучших компаний страны, с результатом – 92 балла!