|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2007, 09:00 | #1 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Правила написания кода на Delphi
Настоящие правила стилевого оформления исходного кода являются обязательными к исполнению при написании любого нового кода программ на Delphi, в том числе при внесении исправлений в существующий код. Ранее написанный код обязательной стилевой правке не подлежит, хотя она может выполняться при наличии желания, возможности и времени.
[Отобенно данные сведения полезны новичкам. Ведь очень трудно разбираться (тем, кто пытается вам помочь) в чужом коде, да еще плохо оформленном] .
Берегите друг друга!
|
13.01.2007, 09:04 | #2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Регистр символов
1. Имена (переменных, типов, методов, констант и так далее) всегда начинаются с Прописной буквы. Если имя составлено из нескольких слов, то каждое слово пишется с первой прописной буквы, без знаков подчёркивания между словами. Исключения: локальные переменные с односимвольными именами в нижнем регистре: i, j, k, l, m, n, s.
2. Писать только прописными буквами допускается константы и имена, являющиеся общепринятыми сокращениями которые обычно пишут прописными буквами. 3. Не рекомендуется использовать в именах символ подчёркивания, кроме случаев, когда он применяется для разделения слов в имени, записанном одними прописными или одними строчными буквами. Запрещается использовать знак подчёркивания в начале или конце имени, или более одного знака подчёркивания подряд. 4. Зарезервированные слова языка Pascal пишутся строчными буквами. Исключение — зарезервированное слово String допускается писать с первой прописной буквой (так как это имя типа, оно попадает под предыдущее правило). 5. Значения True, False, Nil, Unassigned, Null и имя Result пишутся с прописной буквы (как здесь). 6. Зарещается написание одного и того же имени с различным регистром символов в разных местах программы. 7. Если в программе используются внешние модули (библиотеки, компоненты), в которых принята схема именования, отличная от описанной, имена из этих модулей следует писать так, как они записаны в оригинале.
Берегите друг друга!
|
13.01.2007, 09:06 | #3 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Выбор имён
1. Все имена в программе должны быть осмысленными. Исключения: локальные в подпрограммах целочисленные переменные циклов могут иметь имена i, j, k, l, m, n, временная строковая переменная, локальная в подпрограмме, может иметь имя s.
2. Допустимыми языками для именования являются русский и английский. Русские имена пишутся транслитом. Допустимо использовать одни имена на английском, другие — на русском языке, но запрещено смешивать русский и английский в одном имени. То есть допустимо как имя ChildWindow, так и имя DocherneeOkno, но имя ChildOkno недопустимо. 3. Имя не должно быть многозначным или неопределённым. Например, не следует использовать имя Flag, поскольку оно не указывает на назначение флага. Следует расширить имя до EmptyFlag, TerminateFlag, BlockFlag и так далее. 4. Запрещается использовать имена i, j, k, l, m, n, кроме как для переменных циклов, а имя s — кроме как для временной строковой переменной, локальной в подпрограмме. 5. Не рекомендуется использовать в именах сокращения слов. Например, нежелательно имя FObjName, лучше использовать FObjectName. С другой стороны, следует избегать слишком длинных имён (более 20 символов) и имён, состоящих из более чем трёх слов, так как такие имена трудно воспринимать. 6. Запрещается использовать в именах сокращения, не являющиеся очевидными и общепринятыми, употребление которых требует дополнительного комментария для объяснения назначения называемого объекта. Например, нельзя использовать вместо имени AutomatEngineError имя AEE, поскольку оно совершенно неочевидно. Допустимость того или иного конкретного сокращения может зависеть от контекста применения. Так, сокращение CurValue вместо CurrentValue может быть допустимо в программе технических расчётов или динамической графики, но категорически недопустимо в программе финансовых расчётов, потому что в этом контексте CurValue неоднозначно — CurrentValue или CurrencyValue? 7. Запрещается использование в именах префиксов, кроме явно описанных в разделе «Префиксы имён». 8. Допускается оставлять визуальным компонентам, созданным в дизайнере форм, их технические имена, созданные Delphi, если выполняются условия: a. к этим компонентам не происходит обращения нигде в коде; b. они не указываются в значениях published свойств других компонентов; c. у них нет обработчиков событий
Берегите друг друга!
|
13.01.2007, 09:09 | #4 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Префиксы имён
1. Имена типов исключений должны иметь префикс E (EAutomateEngineError).
2. Имена интерфейсов должны иметь префикс I (IMetadataManager). 3. Имена типов-указателей должны иметь префикс P, а в остальной части совпадать с именем указываемого типа без префикса T (PInteger — указатель на Integer, PUserList — указатель на TUserList. 4. Имена прочих типов должны иметь префикс T (TPasswordDialog). 5. Имена формальных параметров подпрограмм должны иметь префикс A (AFileName). Допускается в методах доступа (используемых для сохранения значения свойства) использовать формальный параметр с именем Value без префикса A для нового значения свойства. 6. Допускается в именах локальных переменных процедур и функций использовать префикс lc для указания на локальность определения (lcTemporaryDataSet). К переменным i, j, k, l, m, n, s префикс lc не добавляется, поскольку переменные с этими именами могут быть только локальными. 7. Рекомендуется имена модулей (файлов unit) снабжать префиксами, указывающими на содержимое. Использовать ax для модулей ActiveX-компонентов, dm для датамодулей, u — для любых модулей. Прочие префиксы не стандартизуются. 8. Имена констант, являющихся элементами перечислимого типа, должны иметь префикс, составленный из первых букв слов названия типа, к которому они относятся, в нижнем регистре. Например: TSex = (sUnknown, sMale, sFemale); TActionType = (atOpen, atClose ); 9. Имена личных (private) атрибутов классов должны иметь префикс F (FComplexLexeme).
Берегите друг друга!
|
13.01.2007, 09:10 | #5 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Имена компонентов VCL
1. Имена переменных и атрибутов, содержащих визуальные компоненты типов VCL и унаследованных от них, следует формировать их по схеме <имя><тип>, например, MainForm, ChildFrame, ServerDataModule, NameLabel, ObjectQuery и так далее.
2. Рекомендуется использовать в именах компонентов короткие и осмысленные имена классов, которые в достаточной мере отражают способ использования компонента, но не обязательно точно соответствуют его объявленному типу. Например, для компонента SQL-запроса, извлекающего список объектов, лучше использовать имя ObjectQuery, а не ObjectADOQuery, если только уточнение типа в данном случае не является принципиальным (поведение TADOQuery не так уж сильно отличается от обобщённого TQuery). Дополнительные символы в имени загромождают его и мешают читать.
Берегите друг друга!
|
13.01.2007, 09:11 | #6 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Использование переменных
1. Любая переменная должна использоваться только для одной цели. Использование одних и тех же переменных в различных целях запрещено. Не следует экономить байты, теряя качество кода.
2. Следует по возможности избегать использования переменных, глобальных в модуле. 3. Для глобальных объектов следует создавать и использовать синглетоны?. Использование переменных, глобальных в программе, запрещено категорически (любая переменная, объявленная в interface части модуля, является глобальной в программе). В том числе нельзя использовать глобальные переменные-формы, создаваемые дизайнером в каждом модуле формы. Единственная глобальная переменная-форма, которая может использоваться — переменная, созданная для главной формы приложения, поскольку избежать её использования в Delphi невозможно. Но и она может применяться только внутри своего модуля.
Берегите друг друга!
|
13.01.2007, 09:12 | #7 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Стиль написания конструкций языка
Изложенные здесь правила написания конструкций выбраны потому, что они:
1. облегчают чтение текста программы и исключают его неоднозначное понимание; 2. позволяют «на глаз», по отступам, контролировать правильность вложенности конструкций (любая конструкция, начинающаяся с ключевого слова, кроме цикла repeat, заканчивается ключевым словом end, расположенным с тем же отступом); 3. при описках программиста приводят к ошибкам компиляции, а не к синтаксически корректному, но семантически неверному коду; 4. экономят место.
Берегите друг друга!
|
13.01.2007, 09:14 | #8 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Пробелы и символы
1. Каждая языковая конструкция, которая, по правилам языка, может завершаться точкой с запятой, должна ею завершаться.
2. Перед символами «двоеточие», «точка с запятой», «запятая» никогда не ставятся пробелы. После этих символов всегда ставится, по крайней мере, один пробел, если на этом символе строка не заканчивается. 3. Знаки арифметических операций, логических операций и операции присваивания в выражениях должны обрамляться пробелами с обеих сторон. Код:
6. Между именем подпрограммы и открывающейся скобой, начинающей список параметров, никогда не может быть поставлен пробел, табуляция или перевод строки.
Берегите друг друга!
|
13.01.2007, 09:21 | #9 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Строки и отступы
1. На одной строке может быть записана только одна инструкция языка (один оператор).
2. Для вложенных программных конструкций обязательно использование отступов вправо. Отступ вправо составляет два символа. Замена в отступах пробелов на табуляции не допускается. 3. Комментарии в тексте программы, если они занимают целые строки, пишутся с тем же отступом, что и комментируемый код. 4. Рекомендуемая максимальная длина строки программы — 80 символов. Более длинные строки должны переноситься. При переносе отступ перенесённой части не должен быть меньше четырёх символов, но может быть больше, если это нужно для удобства восприятия текста. Код:
Код:
Код:
Берегите друг друга!
|
13.01.2007, 09:25 | #10 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Описания переменных, типов или констант
1. Описание переменной, типа или константы выполняется в секции var, type или const соответствующего раздела описаний (interface, implementation или в секции описания локальных данных процедуры или функции).
2. Ключевые слова type, const, var всегда записываются на отдельной строке, размещать за этими словами описания нельзя. Описания следут с отступом на следующих за ключевым словом строках: Код:
4. Допускается описывать несколько переменных одного типа в одной строке.
Берегите друг друга!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi. Редактор кода. | BOBAH13 | Общие вопросы Delphi | 5 | 25.05.2008 00:20 |
Перевод кода с Fortran-77 на Delphi | unhide | Помощь студентам | 3 | 20.05.2008 14:27 |
[DELPHI] Изменения кода проекта!!! | metamfetamin | Помощь студентам | 4 | 09.12.2007 13:52 |
Правила написания формул в Delphi | yurik44 | Общие вопросы Delphi | 1 | 13.06.2007 15:57 |
Трансляция кода из Delphi в C | phobos | Помощь студентам | 9 | 21.04.2007 18:26 |