Требования к коду на C++ #
Для C++ нет готового шаблона проекта и стиля кодирования
Если вы пишете проект на C++, то вы сами настраиваете структуру своего проекта по требования, описанным ниже, и выбираете любой разумный стиль кодирования.
Технологические требования #
Проект на C++ должен использовать только кроссплатформенные инструменты, чтобы упростить сборку на Linux (даже если вы разрабатываете на Windows).
Обязательные инструменты:
- CMake как система сборки
- Clang-format для форматирования исходного кода — стиль настраивайте как угодно
- Clang-tidy для статического анализа — правила настраивайте как угодно
Инструменты на выбор:
- Стандарт C++ — на выбор C++20, C++23, C++26
- Фреймворк модульного тестирования — Catch2, Google Test или иной современный и популярный фреймворк
- Пакетный менеджер — можно использовать Conan в интеграции с CMake
Материалы по C++ #
Материалы автора курса:
- Статья Современный CMake: 10 советов по улучшению скриптов сборки
- (2024) Небольшие примеры на С++ (CMake, Conan, Catch2): https://github.com/sergey-shambir/cpp-warmup-2024
- (2019) Компилятор императивного языка (lemon, LLVM): https://github.com/sergey-shambir/pythonishc
- (2016) Интерпретатор императивного языка (lemon): https://github.com/sergey-shambir/pythonish-interpreter
Требования к коду #
Три правила:
- Код должен собираться без предупреждений — в том числе без предупреждений линтера
- Не принимается код без тестов — кроме вспомогательных скриптов и примеров на других языках
- Соблюдайте единый стиль кодирования — стиль выбираете сами, но он должен быть единым на весь проект