Специальный выпуск

Здравствуйте,  уважаемые подписчики…

Необходимость создания специального выпуска возникла уже при подготовке материала для моих первых выпусков рассылки. Дело в том, что в используемых мною примерах практически все имена переменных образованы согласно Венгерской нотации. Любой знающий нотацию программист без труда сможет понять по имени переменной, что это за переменная и для чего она предназначена, однако для новичков – это всего лишь набор символов. Поэтому я советую всем начинающим программистам поподробнее изучить соглашения о наименовании, потому как в дальнейшем вы сами поймете, что использовать их в написании собственных приложений одно удовольствие. Применение соглашений поможет сделать программу более наглядной и удобной в работе.

Соглашения о наименовании Реддика

Цель соглашений о наименовании Реддика заключается в предоставлении указаний по присвоению имен объектам. Для любого программного проекта необходимо наличие соглашений. При их использовании имя объекта несет в себе информацию о его назначении. Предлагаемые соглашения стандартизируют обозначения в сфере программирования.

Соглашения предлагаются только в качестве рекомендаций. Если вас не устраивает какая-либо их часть, замените ее по своему усмотрению. Но помните о тех, кто будет работать с вашими программами, и не забывайте ставить в заголовке модулей комментарии, разъясняющие суть ваших изменений.

Знакомство с Венгерской нотацией

Соглашения Реддика основаны на Венгерской нотации, которая получила такое название потому, что ее изобретатель, Чарльз Симони, родом из Венгрии. Цель этой нотации – лаконичное и эффективное представление информации об объекте в его имени. К Венгерской нотации необходимо привыкнуть, но если вы ее усвоили, она быстро становится незаменимой. Имя объекта в соответствии с данной нотацией имеет следующий формат:

[Префиксы] Признак [ОсновноеИмя [Суффиксы]]

Квадратными скобками выделены необязательные компоненты имени объекта.

Префикс

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

Признак

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

ОсновноеИмя

Одно или несколько слов, которые указывают, что представляет данный объект. Первая буква каждого слова основного имени должна быть прописной.

Суффикс

Дополнительная информация о значении основного имени. Первая буква каждого слова суффикса должна быть прописной. Обычно суффиксы выбираются из стандартного списка суффиксов, приведенного ниже.

Признаки

Признаки переменных

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. Сайт находится на стадии разработки, но зато там есть форма быстрой подписки на рассылку.

Всегда ваш – Блинов Евгений.

vbfromzero@pisem.net

 

Hosted by uCoz