Требования к коду на C++

Требования к коду на C++ #

Для C++ нет готового шаблона проекта и стиля кодирования

Если вы пишете проект на C++, то вы сами настраиваете структуру своего проекта по требования, описанным ниже, и выбираете любой разумный стиль кодирования.

Технологические требования #

Проект на C++ должен использовать только кроссплатформенные инструменты, чтобы упростить сборку на Linux (даже если вы разрабатываете на Windows).

Обязательные инструменты:

  1. CMake как система сборки
  2. Clang-format для форматирования исходного кода — стиль настраивайте как угодно
  3. Clang-tidy для статического анализа — правила настраивайте как угодно

Инструменты на выбор:

  1. Стандарт C++ — на выбор C++20, C++23, C++26
  2. Фреймворк модульного тестирования — Catch2, Google Test или иной современный и популярный фреймворк
  3. Пакетный менеджер — можно использовать Conan в интеграции с CMake

Материалы по C++ #

Материалы автора курса:

  1. Статья Современный CMake: 10 советов по улучшению скриптов сборки
  2. (2024) Небольшие примеры на С++ (CMake, Conan, Catch2): https://github.com/sergey-shambir/cpp-warmup-2024
  3. (2019) Компилятор императивного языка (lemon, LLVM): https://github.com/sergey-shambir/pythonishc
  4. (2016) Интерпретатор императивного языка (lemon): https://github.com/sergey-shambir/pythonish-interpreter

Требования к коду #

Три правила:

  1. Код должен собираться без предупреждений — в том числе без предупреждений линтера
  2. Не принимается код без тестов — кроме вспомогательных скриптов и примеров на других языках
  3. Соблюдайте единый стиль кодирования — стиль выбираете сами, но он должен быть единым на весь проект