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