Здравствуйте, уважаемые подписчики…
Необходимость создания специального выпуска возникла уже при подготовке материала для моих первых выпусков рассылки. Дело в том, что в используемых мною примерах практически все имена переменных образованы согласно Венгерской нотации. Любой знающий нотацию программист без труда сможет понять по имени переменной, что это за переменная и для чего она предназначена, однако для новичков – это всего лишь набор символов. Поэтому я советую всем начинающим программистам поподробнее изучить соглашения о наименовании, потому как в дальнейшем вы сами поймете, что использовать их в написании собственных приложений одно удовольствие. Применение соглашений поможет сделать программу более наглядной и удобной в работе.
Цель соглашений о наименовании Реддика заключается в предоставлении указаний по присвоению имен объектам. Для любого программного проекта необходимо наличие соглашений. При их использовании имя объекта несет в себе информацию о его назначении. Предлагаемые соглашения стандартизируют обозначения в сфере программирования.
Соглашения предлагаются только в качестве рекомендаций. Если вас не устраивает какая-либо их часть, замените ее по своему усмотрению. Но помните о тех, кто будет работать с вашими программами, и не забывайте ставить в заголовке модулей комментарии, разъясняющие суть ваших изменений.
Соглашения Реддика основаны на Венгерской нотации, которая получила такое название потому, что ее изобретатель, Чарльз Симони, родом из Венгрии. Цель этой нотации – лаконичное и эффективное представление информации об объекте в его имени. К Венгерской нотации необходимо привыкнуть, но если вы ее усвоили, она быстро становится незаменимой. Имя объекта в соответствии с данной нотацией имеет следующий формат:
[Префиксы] Признак [ОсновноеИмя [Суффиксы]]
Квадратными скобками выделены необязательные компоненты имени объекта.
Модифицирует признак, что позволяет сообщать дополнительную информацию. Он должен состоять из строчных букв и обычно выбирается из стандартного списка префиксов, приведенного ниже.
Короткий набор символов, который указывает тип объекта. Признак должен состоять из строчных букв и обычно выбирается из стандартного списка признаков, приведенного ниже.
Одно или несколько слов, которые указывают, что представляет данный объект. Первая буква каждого слова основного имени должна быть прописной.
Дополнительная информация о значении основного имени. Первая буква каждого слова суффикса должна быть прописной. Обычно суффиксы выбираются из стандартного списка суффиксов, приведенного ниже.
bln |
Boolean |
byt |
Byte |
cur |
Currency |
dtm |
Date |
dec |
Decimal |
dbl |
Double |
int |
Integer |
lng |
Long |
obj |
Object |
sng |
Single |
str |
String |
stf |
String (фиксированной длины) |
var |
Variant |
Например:
lngCount
intValue
strInput
Все переменные нужно описывать явно, каждую – в отдельной строке. Нежелательно пользоваться символами, которые ранее применялись в описаниях типа, например %, & и $. Эти символы излишни при использовании соглашений о наименовании. Например:
Dim intTotal As Integer
Dim varField As Variant
Dim strName As String
Объект-семейство распознается по специальному признаку, который формулируется на основе типа данных семейства с добавлением в конец буквы s. Например, если у вас имеется семейство с данными типа Long, признаком этого семейства будет lngs, если Integer – то ints и т.д.
Имена элементов меню должны отражать их позицию в иерархии. Все они должны быть снабжены признаком mnu, а основное имя следует составлять из набора выбираемых пользователем команд. Для разделительных линий в меню используйте основное имя Sep с порядковым номером:
mnuFile (на панели меню)
mnuFileNew (в меню File)
mnuFileNewForm (в меню File\New)
mnuFileNewReport (в меню File\New)
mnuFileSep1 (первый разделитель в меню File)
mnuFileSaveAs (в меню File)
mnuFileSep2 (второй разделитель в меню File)
mnuFileExit (в меню File)
mnuEdit (на панели меню)
Признаки объектов Visual Basic
app |
App |
chk |
CheckBox |
clp |
Clipboard |
cbo |
ComboBox |
cmd |
CommandButton |
ctl |
Control |
dat |
Data |
dir |
DirListBox |
drv |
DriveListBox |
fil |
FileListBox |
frm |
Form |
fra |
Frame |
glb |
Global |
hsb |
HscrollBar |
img |
Image |
lbl |
Label |
lics |
Licenses |
lin |
Line |
lst |
ListBox |
mdi |
MDIForm |
mnu |
Menu |
ole |
OLE |
opt |
OptionButton |
pic |
Picture |
prt |
Printer |
prp |
PropertyPage |
scr |
Screen |
shp |
Shape |
txt |
Text |
tmr |
Timer |
uctl |
UserControl |
udoc |
UserDocument |
vsb |
VscrollBar |
cls |
ClassModule |
bas |
Module |
frm |
Form |
Префикс массивов
В именах массивов используется префикс a. Например:
aintFontSizes
astrNames
Для каждой переменной существует три уровня области видимости: общий уровень модуля, личный уровень модуля и уровень процедуры. Кроме того, время жизни переменной может совпадать со временем выполнения всей программы в данном модуле. При желании для указания области видимости и времени жизни можно использовать префиксы, список которых приведен ниже:
(нет) локальная переменная, время жизни уровня процедуры
s локальная переменная, время жизни уровня программы
m модульная переменная, время жизни уровня программы
g глобальная переменная, время жизни уровня программы
Можно создавать собственные суффиксы, отражающие специфику данной разработки. Ниже приведен список некоторых обобщенных суффиксов в Visual Basic:
Min самый первый элемент массива или другого списка
First первый используемый в текущей операции элемент массива или списка
Last последний используемый в текущей операции элемент массива или списка
Max самый последний элемент массива или другого списка
При сохранении файла на диске нет необходимости указывать признак сохраняемого объекта, поскольку тип объекта определяется расширением файла, например:
Test.frm (форма frmTest)
Globals.bas (глобальный модуль)
Glyph.cls (модуль класса qpsGlyph)
P.S. К сожалению мне не удалось в полном объеме охватить соглашения о наименовании, поэтому возникающие по ходу ознакомления с материалом вопросы прошу присылать на почтовый ящик. Во всех непонятных вам вещах будем разбираться вместе. Надеюсь, что этот специальный выпуск поможет вам сделать значительный шаг на пути освоения навыков программирования.
Если вы все еще не подписались на рассылку, но уже решили это сделать, то можете обратиться на сайт http://vbfromzero.narod.ru. Сайт находится на стадии разработки, но зато там есть форма быстрой подписки на рассылку.
Всегда ваш – Блинов Евгений.