Регистр букв
Эта заметка является продолжением к заметкам Стиль оформления кода. Вместо вступления и Настройки окружения.
Регистр букв
Во время кодирования, при выборе регистра букв, необходимо соблюдать следующие правила:
- все зарезервированные слова и директивы пишутся в нижнем регистре;
- при повторном использовании идентификатора используется тот вариант написания, который использовался при первом объявлении этого идентификатора.
Во время проектирования, при составлении новых идентификаторов, необходимо руководствоваться общим правилом (см. ниже), а также соглашением об именовании (планируется отдельной заметкой).
Особым образом пишутся директивы компилятора (см. ниже).
Общее правило для идентификаторов
При написании новых идентификаторов необходимо использовать стиль CamelCase, в котором каждая осмысленная часть идентификатора начинается с заглавной буквы, а символы подчёркивания (для соединения частей) не используются. Примеры и допустимые отступления от этого стиля представлены в таблице ниже.
HINT: соглашение об именовании может содержать исключения из этого правила. Например идентификаторы вида: WM_ACTIVATE, DWORD, BITMAPFILEHEADER, some_table_filed и другие.
№ |
Если наименование идентификатора |
то |
Пример |
1 |
состоит из одной буквы |
допускается любой регистр |
i, j, k: Integer; s, t, u: string; C: Cardinal; D: TDateTime; |
2 |
состоит из одного слова (в том числе аббревиатуры и сокращения) |
начинается с заглавной буквы |
Count Value Next Rtti Vcl Db Eof Tmp Src Dst Cnt |
3 |
состоит из нескольких слов |
слова пишутся слитно, каждое с заглавной буквы |
FirstChar DoSomethingElse RttiContext ItemsCnt |
4 |
начинается с префикса, указывающего на тип идентификатора |
префикс пишется строчными буквами |
poScreenCenter fsModal btnOk |
5 |
начинается с буквы, указывающей на вид идентификатора |
буква пишется в верхнем регистре |
SResourceString EMyException ISomeInterface TAnotherType FClassField AMethodParameter LLocalVariable |
Директивы компилятора
Выбор регистра букв при написании директив компилятора сводится к простому правилу:
- все однобуквенные директивы всегда записываются в верхнем регистре;
- директивы, влияющие на текст компилируемого кода, записываются в нижнем регистре;
- все остальные директивы — записываются в верхнем регистре.
Параметры всех директив пишутся в соответствии с общим правилом (см. выше).
Включение части кода из другого файла
Для включения (вставки) текста из указанного файла в текущий фрагмент кода при компиляции используется директива {$include} или {$I}.
Если включаемый файл содержит набор директив для компилятора и не содержит «полезный» код, следует использовать краткую форму написания в верхнем регистре:
{$I OurCompanyDefinitions.inc}
В противном случае используется полная форма, и записывается в нижнем регистре:
{$include SomeFileWithCode.inc}
Условная компиляция
Директивы условной компиляции кода, такие как {$define SomeSymbol}, {$ifdef SomeSymbol}, {$else}, {$endif} и т.п., пишутся в нижнем регистре.
См. также: определения условной компиляции.
Регионы
Редактор кода Delphi для удобства навигации позволяет сворачивать/разворачивать логические единицы исходного кода.
Для выделения произвольной части кода в сворачиваемую единицу используются регионы. Для этого необходимый текст обрамляется директивами {$region ‘Region Description’} и {$endregion}, которые пишутся в нижнем регистре. Описание региона (‘Region Description’) игнорируется компилятором, поэтому должно быть удобочитаемым и подчиняться правилам естественного языка.
Нижний регистр в написании этих директив является исключением из основного правила и следует из соображения, что они не должны бросаться в глаза и отвлекать на себя внимание.