Стиль именования идентификаторов ObjectPascal на других языках - PullRequest
2 голосов
/ 24 июня 2010

Я научился программировать на delphi, и мне всегда нравился стиль кода pascal, он выглядит очень интуитивно понятным и чистым.

Когда вы смотрите на объявление переменной, вы знаете, с чем имеете дело ..

Краткое резюме:

Исключение E EMyError
Классы и типы T TMyClass
Поля в классах f fVisible
События Вкл OnMouseDown
Типы указателей P PMyRecord
Свойство Получить Что-то Установить SetSomething

Слишком плохо использовать этот стиль именования идентификаторов в C ++ C # Java или любом другом коде языка?

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

Помимо вкусовых и культурных вопросов (как уже указывал Мейсон)

Могут быть причины, по которым конвенция связана с определенным языком, а другие языки также могут иметь свои причины.

Я могу только быстро придумать несколько примеров:

На языках, которые не требуют, чтобы тип указателя был определен перед использованием (например, большинство не-Borland Pascals, C и т. Д.), Буква "P" обычно требуется редко.

Другие языки также могут иметь дополнительные средства устранения неоднозначности (например, в C, где часто типы пишутся в верхнем регистре, а переменные или поля получают идентификатор в нижнем регистре) и не нуждаются в «T». (Строго говоря, Delphi не является ни по крайней мере для полей, так как идентификаторы в некотором смысле зависят от контекста (например, отдельные пространства имен для полей и типов), но соглашение старше этой функции)

Кстати, вы забыли «I» для интерфейса, а имена перечислений начинаются с префикса, полученного из имени базового типа (например,

TStringsDefined = set of (sdDelimiter, sdQuoteChar, sdNameValueSeparator,
sdLineBreak, sdStrictDelimiter)

)

и т.д..

Хм, это еще один бит для конкретного языка, поскольку Object Pascal всегда добавляет имена перечислений в глобальное пространство (вместо того, чтобы требовать enumtype.enumname). С префиксом происходит меньшее загрязнение глобального пространства.

Это одна из моих любимых мозолей с Delphi, кстати, отсутствие контроля над импортом (ИМПОРТ КАЧЕСТВА в стиле Modula2, ОТ ИМПОРТА xxx. У некоторого расширенного Паскаля тоже есть это)

3 голосов
/ 24 июня 2010

Насколько я знаю, префиксы T, E, F и P обычно используются только в программировании на Delphi. Они являются стандартной частью этой идиомы, но в C # или Java они выглядят неуместно.

Get и Set довольно стандартны для объектно-ориентированного программирования. Не уверен насчет префикса On, но я не удивлюсь, если бы он встречался в любой управляемой событиями среде.

...