Для того, чтобы упростить жизнь себе и нам, предлагаю после написания кода проверять его автоматическими инструментами.
Все проверки, описанные здесь, будут работать автоматизировано в пайплайне PR. Локально проверять быстрее, поэтому здесь можно почитать про то, как и где взять инструменты для проверки.
Я намеренно не привожу здесь все команды для запуска, потому что мне во-первых лень копировать документацию, а во-вторых для вас будет полезной практикой самостоятельно со всем этим разобраться :P
Будем использовать общепринятый clang-format
. Конфиг для него лежит в корне проекта в файле .clang-format
.
Можете настроить более привычный для себя стиль. Почитать подробнее можно тут.
Чтобы не мучаться, выставите файл конфига в среде разработки и включите автоформат. Пишущим код в nano и блокноте - сочувствую))
Для статической проверки кода (поиск потенциальных утечек, висячих указателей и тд.) скачиваем cppcheck.
В качестве линтера возьмем cpplint. Он проверяет, насколько верно ваш код организован и соответствует Google style guide
Статическими проверками не получится полноценно проверить, нет ли у вас утечек памяти. Классическим инстурментом для этого является valgrind. К сожалению, нормально работает только на linux, поэтому поднимаем виртуалку или докер контейнер.
В example
лежит Makefile, в котором помимо запуска тестов есть следующие команды:
make memory
- собирает ваши тесты с valgrindkjkjmake format
- форматирует код (перед отправкой дз надо запускать :))make lint
- прогоянет cpplintmake check
- прогоняет cppcheck
Оно