#std456¶
Тексты модулей¶
1.¶
Пишите код на русском языке.
На английском языке можно писать имена веб-сервисов, названия их методов и параметров. Еще на английском можно писать название полей внешних структур данных.
В стандарте не указано
Вместо обращений к полям внешних структур на английском лучше обращаться к ключам через строковые литералы. Так будет очевидно, что внешний ключ именно внешний.
1.1.¶
Не используйте букву ё
в коде программы.
Используйте ё
в том, что выводится пользователю: текстах, справке, если без ё
будет неправильное прочтение слова.
В стандарте не указано
Если использовать букву ё
то очень сложно искать по кодовой базе. Придется искать во всех вариантах написания.
1.2.¶
Не используйте в коде программы неразрывные пробелы
и знак минус -
−
в других начертаниях (короткое –
–
, длинное тире —
—
).
При копировании текста из офисных документов такие символы часто оказываются в тексте модулей и приводят к проблемам:
- Не работает поиск фрагментов текста
- Ошибается подсказка типов параметров процедур и функций в конфигураторе и в 1С:EDT
- Минуса в выражениях приводят к синтаксической ошибке
2.¶
Удаляйте мертвый код. Программа должна содержать только используемые процедуры и функции. Неиспользуемые - удалите.
3.¶
Удалите закомментированный код и код связанный с процессом разработки (отладочный код, служебные отметки: TODO
, MRG
).
Неправильно
Неправильно
Правильно
Удалить обработчик ПередУдалением
Не используйте комментарии в текстах запросов для патча запросов
Неправильно
Оформление текстов запросов #std437
4.¶
Пишите один оператор на одной строке.
На одной строке несколько операторов можно писать для простых операторов присваивания
5.¶
Код программы оформляйте отступом. Для отступа используется табуляция, а не пробелы. Размер табуляции: 4 символа.
В конфигураторе можно сменить размер табуляции. Код надо оформлять так, чтобы при смене размера табуляции выравнивание сохранялось.
5.1.¶
С крайней левой позиции без отступов пишем:
- операторы
Процедура
,КонецПроцедуры
,Функция
,КонецФункции
- заголовки (описания) процедур и функций
- объявление переменных модуля
- код вне процедур и функций
- директивы компилятора
&НаКлиенте
,&НаСервере
... - аннотации
&Перед
,&После
... - инструкции препроцессора
#Если Сервер Тогда
,#Область
...
В стандарте не указано
Автоматическое форматирование платформы не выравнивает директивы препроцессора по левому краю. После автоформатирования придется довыравнивать руками.
5.2.¶
Текст внутри блока процедур НачатьТранзакцию()
и ЗафиксироватьТранзакцию()
не сдвигается.
6.¶
Длина строки: 120 символов. Табуляция считается за 4 символа.
Строки длиннее 120 пишутся только в случае, когда перенос невозможен.
В стандарте не указано
Ограничение длины строк важно. Когда выполняем сравнение модулей, особенно для трехстороннего сравнения: приходится высматривать сразу три редактора кода. Даже широкие экраны не помогут при более 120 символах.
Перенос выражений #std444
7.1.¶
Тексты комментариев должны составляться:
- по правилам русского языка
- в деловом стиле
- быть эмоционально сдержанными
- не содержать слов, не относящихся к функциональности программы
В стандарте не указано
Чтобы научиться писать хорошие комментарии прочитайте
- Роберт Мартин, Чистый код, Глава 4. Комментарии
- Стив Макконнелл, Совершенный код, Раздел 32. Самодокументирующийся код
7.2.¶
Небольшие комментарии пишите в конце строки
7.3.¶
Большие комментарии или комментарии к фрагменту кода пишите перед кодом отдельной строкой.
Текст выравнивайте по левому краю.
Между символами комментария //
и началом комментария должен быть пробел.
Правильно
8.¶
Тексты больших процедур и функций разбивайте на отдельные сворачиваемые области. Имена областей называются так же, как имена переменных из стандарта правила образования имен переменных
см. также¶
- Правила создания общих модулей #std469
- Структура модуля