Соглашения о кодировании
Общие положения соглашений о кодировании.
Содержание
1 Цели правил кодирования
- Единый стиль оформления кода во всем проекте.
- Визуальное выделение наиболее значимых частей.
2 Соглашения об именовании
2.1 Именование переменных
- Существует несколько популярных соглашений об именования переменных:- Верблюжья нотация (CamelCase):MyClass
- Змеиная нотация (snake_case):my_const
- Шашлычная нотация (kebab-case):my-data
- Венгерская нотация - соглашение об именовании идентификаторов (переменных и функций), которое сводится к кодированию типов данных прямо в название: userArray.
- Нотация Cobol: COBOL-CASE.
 
- Верблюжья нотация (
2.2 Предикаты
Предикат - это функция-проверка, она всегда возвращает либо true, либо false.
- Предваряются префиксом is:isEmpty().
- Если предикат отвечает на вопрос есть ли? (например, есть ли в списке чисел нечётное число?), принято использовать слово has:hasChildren().
- Используется знак ?в конце слова (lisp, ruby):empty?.
- Используется буква pв конце слова (emacs lisp):empty-p.
2.3 Разное
2.3.1 Количество
Если нужна переменная, в которой содержится количество чего-либо, используется комбинация: сущность во множественном числе + count: symbolsCount.
3 Отступы
- Во многих стандартах кодирования запрещается использовать табуляции - их требуют заменять пробелами.
- В различных редакторах может устанавливаться разная длина символа табуляции, поэтому при смешении табуляции с пробелами исходный код будет выглядеть по-разному в разных редакторах.
4 Комментарии
- Комментарий - некомпилируемая часть исходного кода, поясняющая принцип работы программы. 
- Иногда в комментариях фиксируют информацию: - о версии кода и, внесенных в ней, изменениях;
- об авторе кода или конкретных правок;
- о лицензии, по которой распространяется код;
- о неисправленных ошибках и прочих недочетах, заметки разного рода.
 
- Комментарии должны быть коггерентны коду. При изменении кода надо менять комментарии. 
- Комментарии не должны пояснять очевидные моменты. 
- Комментарии должны быть понятны всем, а не только тем, кто их пишет. 
- Комментарии не должны содержать бесполезной информации. 
- Написание комментариев и поддержка единого стиля комментариев не должна отнимать слишком много времени. 
- Использование современных инструментов разработки позволяют полностью исключить некоторые типы комментариев из программы: - информацию о версии программы, авторе изменений и ее особенностях позволяют хранить системы управления версиями;
- комментарии TODO, BUG и FIXME могут быть перенесены в трекеры задач и ошибок.
 
