Оформление исходных текстов

  1. Все исходники должны быть отформатированы с использованием .clang-format, который будет лежать в репозиториях. В каждой работе под это выделен отдельный критерий оценивания.

  2. Не допускается использование конструкций using namespace на верхнем уровне в заголовочных файлах.

  3. Переменные/объекты должны объявляться как можно ближе к месту их фактического использования. Не плодите глобальные переменные без острой на той необходимости.

  4. using namespace std в заголовочных файлах быть не должно.

  5. Секции внутри класса должны быть упорядочены в порядке убывания интереса к ним со стороны читающего код:

    • первой должна идти секция public, так как это интерфейс класса для клиентов;

    • затем секция protected, поскольку она представляет собой интерфейс для наследников;

    • завершает класс секция private, так как эта информация интересна только разработчику класса.

  6. Внутри каждой секции информация должна быть упорядочена следующим образом:

    • типы;

    • поля;

    • конструктор по умолчанию;

    • конструкторы копирования и перемещения;

    • все остальные конструкторы;

    • деструктор;

    • перегруженные операторы;

    • методы.

  7. Имена полей класса должны иметь отличительный признак поля, в качестве которого следует использовать либо префиксm_, либо завершающий символ подчеркивания. Пример: m_size или size_.

  8. Недопустимо создавать поля/переменные/методы/функции/классы, начинающиеся с подчеркиваний.

  9. Все функции, классы, методы, переменные и пр. в коде называется нормально, а не void func(), int abc и пр.

  10. В конце файлов с кодом (заголовочных и исходников) должна быть пустая строка (no-newline-compile-warning).

Наиболее простым способом следовать этим правилам будет настроить редактор так, чтобы он выполнял такое форматирование автоматически. Общий признак хорошего кода: его можно прочитать по телефону и он будет понятен на той стороне.

Примечание по требованиям к оформлению: если кого-то идеологически не устраивают какие-либо пункты оформления, то это можно обсудить с преподавателями.

Last updated