Skip to content

Latest commit

 

History

History
37 lines (21 loc) · 3.1 KB

local.md

File metadata and controls

37 lines (21 loc) · 3.1 KB

Локальная проверка кода

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

Все проверки, описанные здесь, будут работать автоматизировано в пайплайне PR. Локально проверять быстрее, поэтому здесь можно почитать про то, как и где взять инструменты для проверки.

Я намеренно не привожу здесь все команды для запуска, потому что мне во-первых лень копировать документацию, а во-вторых для вас будет полезной практикой самостоятельно со всем этим разобраться :P

Стайлчекер

Будем использовать общепринятый clang-format. Конфиг для него лежит в корне проекта в файле .clang-format. Можете настроить более привычный для себя стиль. Почитать подробнее можно тут.

Чтобы не мучаться, выставите файл конфига в среде разработки и включите автоформат. Пишущим код в nano и блокноте - сочувствую))

Статическая проверка

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

Линтер

В качестве линтера возьмем cpplint. Он проверяет, насколько верно ваш код организован и соответствует Google style guide

Динамическая проверка (утечки памяти)

Статическими проверками не получится полноценно проверить, нет ли у вас утечек памяти. Классическим инстурментом для этого является valgrind. К сожалению, нормально работает только на linux, поэтому поднимаем виртуалку или докер контейнер.

Запуск через makefile

В example лежит Makefile, в котором помимо запуска тестов есть следующие команды:

  • make memory - собирает ваши тесты с valgrindkjkj
  • make format - форматирует код (перед отправкой дз надо запускать :))
  • make lint - прогоянет cpplint
  • make check - прогоняет cppcheck

Оно