Это старая версия документа.
В именах юнитов с исходным кодом приняты следующие префиксы:
Название каждого юнита с новой строки примерно в таком порядке:
В именах типов, классов, методов, переменных, параметров и тд. Нужно использовать CamelCase. Сразу за именем переменной должно стоять двоеточие, потом пробел, потом имя типа. Пример: VOperationID: Integer;
Желательно использовать префиксы:
Желательно, что бы ширина строчек кода не превышала 80 символов.
Необходимо соблюдать отступы.
Пробелы перед запятой или точкой с запятой недопустимы.
После запятой должен быть пробел.
Операторные скобки begin/end обязательны.
begin располагается на той же строчке, что и операция к которой он относится.
end располагается на новой строчке с тем же отступом, что и команда к которой он относится
Пример кода:
if FDataRecived then begin
VDataRecived := True;
FDataRecived := False;
end else begin
if FLastDataReceiveTick > 0 then begin
if FLastDataReceiveTick > VCurrTick then begin
FLastDataReceiveTick := VCurrTick;
end else begin
VTickDelta := VCurrTick - FLastDataReceiveTick;
if VTickDelta > VNotDataTimeout then begin
FGPSRecorder.AddEmptyPoint;
FGpsTrackRecorder.AddEmptyPoint;
VDataRecived := True;
end;
end;
end;
end;
Закомментированный код зло и должен быть удален до коммита.
Весь функционал максимально прячется за интерфейсами. Это дает такие преимущества:
В интерфейсах нельзя использовать делфовских классов. То есть, если нам нужно возвратить или получить просто бинарные данные, то нужно использовать не TStream, а интерфейс IBinaryData (Сейчас есть пару исключений самое главное TCustomBitmap32, но это временно). Это же касается делфовских динамических массивов, объявленных как array of По возможности в интерфейсах нужно избегать использования указателей. Использовать их стоит только если это действительно оправдано.