Оформление исходных текстов
Все исходники должны быть отформатированы с использованием
.clang-format
, который будет лежать в репозиториях. В каждой работе под это выделен отдельный критерий оценивания.Не допускается использование конструкций
using namespace
на верхнем уровне в заголовочных файлах.Переменные/объекты должны объявляться как можно ближе к месту их фактического использования. Не плодите глобальные переменные без острой на той необходимости.
using namespace std
в заголовочных файлах быть не должно.Секции внутри класса должны быть упорядочены в порядке убывания интереса к ним со стороны читающего код:
первой должна идти секция public, так как это интерфейс класса для клиентов;
затем секция protected, поскольку она представляет собой интерфейс для наследников;
завершает класс секция private, так как эта информация интересна только разработчику класса.
Внутри каждой секции информация должна быть упорядочена следующим образом:
типы;
поля;
конструктор по умолчанию;
конструкторы копирования и перемещения;
все остальные конструкторы;
деструктор;
перегруженные операторы;
методы.
Имена полей класса должны иметь отличительный признак поля, в качестве которого следует использовать либо префикс
m_
, либо завершающий символ подчеркивания. Пример:m_size
илиsize_
.Недопустимо создавать поля/переменные/методы/функции/классы, начинающиеся с подчеркиваний.
Все функции, классы, методы, переменные и пр. в коде называется нормально, а не
void func()
,int abc
и пр.В конце файлов с кодом (заголовочных и исходников) должна быть пустая строка (no-newline-compile-warning).
Наиболее простым способом следовать этим правилам будет настроить редактор так, чтобы он выполнял такое форматирование автоматически. Общий признак хорошего кода: его можно прочитать по телефону и он будет понятен на той стороне.
Примечание по требованиям к оформлению: если кого-то идеологически не устраивают какие-либо пункты оформления, то это можно обсудить с преподавателями.
Last updated