Coding style/ru

From Free Pascal wiki
Jump to: navigation, search

English (en) français (fr) русский (ru)

Компилятор FPC и RTL

Введение

Некоторые люди могут подумать, что стиль кодирования, используемый в исходниках компилятора FPC и базовой RTL (run-time library) - немного странный, но он использовался много лет и не является предметом обсуждения. Поэтому воспринимайте всё нижеследующее как стандарт для использования.

Зарезервированные слова

Пишите зарезервировенные слова в нижнем регистре. Не надо делать их нечитаемыми, набирая в верхнем регистре. Современные IDE поддерживают подсветку синтаксиса, поэтому зарезервированные слова легко распознаются.

Пробелы

Не используйте пробелы вокруг операторов, двоеточий, скобок и т.д.,
т.е. пишите

p:=p+i;

вместо

p := p + i ;

Символы табуляции

Не используйте символы табуляции (ASCII HT, 0x09). Нет стандартных установок по умолчанию для символов табуляции, поэтому то, как при просмотре будут выглядеть исходные файлы, использующие символы табуляции, будет зависеть от настроек клиента. Это может привести к хаотичному виду исходных файлов. Для выравнивания используйте символы пробела (см. также Отступы).

Отступы

Размер отступа всегда - 2 пробела на уровень.

Никогда не располагайте begin на той-же строке, что while..do, if..then и т.д., а всегда - на его собственной отдельной строке (и делайте отступ относительно while, if и т.д.).

Переводы строк

Отделяйте подпрограммы тремя переводами строк, т.е. помещайте между ними две пустые строки.

Разное

Пожалуйста, обратите внимание, что если после else идёт if, то дополнительного отступа не делается:

if x then
  begin
    ...
  end
else if y then
  begin
    ...
  end;

Разделяйте все составные условия оператора if на несколько строк, т.е. пишите
не так:

if (x) and (y) then

а так:

if x and
   y then
  ...

(возможно, за исключением случаев, когда x и y - просто логические переменные)

Примеры

Для того, чтобы убедиться, как всё это выглядит, можно заглянуть в Исходники FPC.

FCL

Нет формальных стандартов.

Другие пакеты, поставляемые с FPC

Нет формальных стандартов.

Lazarus

Поскольку Lazarus и LCL следуют совместимости с Delphi, стиль кода сходен с тем, который используется в Delphi.

Если вы пишете патч или расширение для LCL, вам следует придерживаться стиля LCL.

Если вы разрабатываете свой собственный компонент, вы можете использовать любой стиль, который вам нравится, но рекомендуется так-же использовать стиль LCL.

Смотрите указания по кодированию Lazarus: DesignGuidelines/ru

Для справки: вы можете найти описание стиля кодирования Delphi здесь


См. также