Здесь показаны различия между двумя версиями данной страницы.
sasdev:соглашения_по_исходному_коду [04/03/2015 10:02] vdemidov |
sasdev:соглашения_по_исходному_коду [10/01/2020 16:35] (текущий) 213.91.147.82 [Длина строки.] |
||
---|---|---|---|
Строка 31: | Строка 31: | ||
====== Форматирование кода ====== | ====== Форматирование кода ====== | ||
+ | ===== Длина строки. ===== | ||
+ | Мы предпочитаем делать строки короткими и наглядными. Короткие строки не только более читабельны, но и позволяют задавать операторы в более простой форме (особенно, когда они используются с описательными именами переменных). Методы, состоящие из серий коротких простых операторов, легче для восприятия и модифицирования. Даже диффы в результате точнее показывают, что поменялось между коммитами. | ||
===== Блоки Uses ===== | ===== Блоки Uses ===== | ||
- | Название каждого юнита с новой строки примерно в таком порядке: | + | Название каждого юнита с новой строки (опять же для упрощения диффов) примерно в таком порядке: |
* Системные юниты (SysUtils, Types и тд.) | * Системные юниты (SysUtils, Types и тд.) | ||
* Юниты библиотек (GR32, KAZip и тд.) | * Юниты библиотек (GR32, KAZip и тд.) | ||
Строка 46: | Строка 48: | ||
===== Идентификаторы ===== | ===== Идентификаторы ===== | ||
В именах типов, классов, методов, переменных, параметров и тд. Нужно использовать CamelCase. | В именах типов, классов, методов, переменных, параметров и тд. Нужно использовать CamelCase. | ||
+ | |||
Сразу за именем переменной должно стоять двоеточие, потом пробел, потом имя типа. | Сразу за именем переменной должно стоять двоеточие, потом пробел, потом имя типа. | ||
+ | |||
Пример: | Пример: | ||
+ | |||
VOperationID: Integer; | VOperationID: Integer; | ||
Строка 57: | Строка 62: | ||
* **A** Параметр функции | * **A** Параметр функции | ||
* **C** Константа | * **C** Константа | ||
+ | |||
+ | Объявление полей класса только по одному на строку с указанием типа для каждого. | ||
+ | |||
+ | Объявление локальных переменных - в большинстве случаев по одному на строку типа для каждой переменной отдельно (исключение простые счетчики) | ||
+ | |||
+ | Объявление параметров функций и процедур - по возможности указывать тип для каждой переменной отдельно, если параметров больше чем один-два, то каждый параметр должен расположен на отдельной строке. | ||
+ | |||
+ | Пример кода: | ||
+ | |||
+ | function FindItems( | ||
+ | const AVisualConverter: ILocalCoordConverter; | ||
+ | const ALocalPoint: TPoint | ||
+ | ): IVectorItemSubset; | ||
+ | | ||
+ | constructor Create( | ||
+ | const ARootFolderName: WideString; | ||
+ | const AFolderNameFromRoot: WideString; | ||
+ | const AFileMask: WideString; | ||
+ | const AFilesOnly: Boolean | ||
+ | ); | ||
+ | |||
+ | |||
===== Форматирование кода ===== | ===== Форматирование кода ===== | ||
Необходимо соблюдать отступы. | Необходимо соблюдать отступы. | ||
Строка 69: | Строка 96: | ||
end располагается на новой строчке с тем же отступом, что и команда к которой он относится | end располагается на новой строчке с тем же отступом, что и команда к которой он относится | ||
- | |||
- | Длинна строки. Мы предпочитаем делать строки короткими и наглядными. Короткие строки не только более читабельны, но и позволяют задавать операторы в более простой форме (особенно, когда они используются с описательными именами переменных). Методы, состоящие из серий коротких простых операторов, легче для восприятия и модифицирования. Даже диффы в результате точнее показывают, что поменялось между коммитами. | ||
Пример кода: | Пример кода: |