Общие требования к коду студентов

Про код в целом:

  • Строгое соблюдение PEP8.
  • Длина строки — 79 символов.
  • Импорты правильно отсортированы, нет неиспользуемых импортов.
  • Отступы - 4 пробела.
  • Переносы с правильными отступами.
  • Бэкслеши для переносов не применяются.
  • Консистентность (одинаковые кавычки, одинаковые методы решения одинаковых проблем и так далее).
  • Отсутствие закомментированного кода и стандартных комментариев Django (# Create your views here. etc.).
  • Комментарии к функциям оформлены в виде Docstrings, в соответствии с Docstring Conventions: начинаются с большой буквы, заканчиваются точкой и содержат описание того, что делает функция.
  • Комментарии к коду лаконичны и содержательны.
  • Длинные куски кода логически разделены пустыми строками, как абзацы в тексте.
  • Отсутствуют лишние операции.
  • Нет лишних else там, где они не нужны (если в if происходит return/raise); используется Guard Block.
  • В репозитории нет лишних файлов: никаких __pycache__, .vscode и прочего.
  • Исполняемый код в .py-файлах должен быть закрыт конструкцией if __name__ == ‘__main__’
  • Для неизменяемых последовательностей данных предпочтительнее применяются кортежи, а не списки.
  • В f-строках применяется только подстановка переменных и нет логических или арифметических операций, вызовов функций и подобной динамики.
  • Переменные названы в соответствии с их смыслом, по-английски, нет однобуквенных названий и транслита. В названии переменной не должен содержаться её тип. При необходимости применяются type annotations.

Про HTML шаблоны:

  • переменные и {% теги %} в шаблонах отформатированы согласно общепринятым рекомендациям.
  • HTML-теги в шаблонах отбиты отступами в соответствии со вложенностью. Размер отступа — 2 или 4 пробела, постоянный в пределах проекта.
  • В приложениях указаны правильные пути к шаблонам. Допустимый путь: app/templates/app/index.html. Недопустимый путь: app/templates/index.html. Возможен вариант с project level templates: общая директория templates в корне проекта со всеми шаблонами внутри.

Про Django в целом:

Скачайте шпаргалку, чтобы нужная информация всегда была под рукой.