Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

  Раздел: Компьютерная документация -> Программирование -> Basic

 

Стиль оформления кода на vb

Большинство современны языков программирования накладывают не слишком жёсткие ограничения на оформление кода: выбор имён идентификаторов (переменных, констант, подпрограмм) , компоновку операторов в строках, наличие комментариев и т.д. Как правильно воспользоваться этой свободой? Этому и посвящена данная статья.

При разработке программного продукта коллективом программистов существует такое понятие как coding conventions - соглашения о стиле кодирования. Это единый набор правил определяющий принципы выбора имён переменных, форматирования исходных текстов программ, использование комментариев и т.п. Хотя эти соглашения являются индивидуальными для каждого коллектива и даже для каждого проекта, однако можно выделить некоторые универсальные устоявшиеся положения, которые составляют хороший стиль оформления кода.
Однако единый стиль программирования необходим не только при коллективной разработке. Применение принципов описанных в данной статье позволит сэкономить некоторое количество сил и времени при разработке и ваших программ даже если вы пишете в одиночку.
Многие начинающие программисты скептически относятся к такого рода рекомендациям, считая что их код и так прост и понятен. К сожалению зачастую это не так. Запомните: если в вашей программе больше трёх строк кода - пора задуматься о его правильном оформлении.
Ведь ваш стиль оформления кода - это ваш электронный почерк. Давайте писать красиво!

Материал статьи ориентирован в первую очередь на язык Microsoft Visual Basic, однако может быть с некоторыми ремарками распространён и на другие языки программирования.
Статья расчитана в первую очередь на программистов уже имеющих знакомство с языком, но не имеющих опыта реального программирования и ещё не имеющих устоявшегося стиля написания кода. Хотя возможно будет небезынтересна и опытным программистам.

Всё написанное является личным мнением автора и не в коей мере не претендует ни на оригинальность, ни на абсолютную истинность.
Замечания и пожелания приветствуются.


1. Используйте осмысленные имена переменных, функций, элементов управления, классов и модулей.
Это первое с чем необходимо бороться начинающему (а иногда к сожалению и опытному) программисту. Дело в том, что если в момент написания вы помните для чего используется каждая переменная, то уже при следующем просмотре бывает сложно восстановить назначение и смысл некоторых переменных. А человеку которому вы захотите показать свой код и того трудней разобраться в нагромождении кучи переменных a, b, c, x, y, kkk, hjd и qwerty.
Имя переменной должно говорить само за себя. При одном взгляде на хорошо названную переменную становится очевидно не только предназначение, но и её тип, область видимости и её особенности.
Плохо: a, b, bb, bbb, b1, text1.
Хорошо: MessageText.

2. Используйте отступы.
Отступы - это символы пробелов или табуляции, вставляемые перед в начало строк которые лежат внутри конструкций которые имеют отрывающий и закрывающий оператор. В vb это If...Then...Else...End If, Do Until/While...Loop, For...Next, а также открытие и закрытие файлов Open...Close(...).
Не обсуждается. Отступы должны быть. Это наиболее простой и эффективный способ отразить структуру и вложенность операторов в вашем коде.
Сколько именно пробелов или символов табуляции вставлять не принципиально. Однако следует помнить, что в случае небольшого отступа (1-2 пробела) структура блоков кодов видна плохо, сводя на нет весь смысл отступов. А в случае больших отступов (больше 8 пробелов) при большой вложенности операторов строки начинают "вылезать" за правую границу окна редактора, и приходится прокручивать его горизонтальной полосой прокрутки. На мой взгляд оптимальным является величина в 4 пробела или 1 символ табуляции. Примечание: в vb6 для формирования отступов можно пользоваться клавишей Tab, но редактор преобразует эти символы табуляции в пробелы. Задать количество символов пробела на один Tab можно в Tools -> Options -> Editor -> Tab Width.
Плохо:
Код:
If frmMain.Visible Then
frmMain.Hide
Else
frmMain.Show
End If

Хорошо:
Код:
If frmMain.Visible Then
    frmMain.Hide
Else
    frmMain.Show
End If


3. Не используйте русские или иные национальные символы. Не используйте в качестве имён транскрипции русских (национальных) слов.
Vb один из немногих языков в котором разрешены имена в которых присутствуют символы из верхней кодовой таблицы (символы с ASCII-кодами свыше 127). Однако я бы не рекомендовал пользоваться этой возможностью. Так как это автоматически делает невозможной работу с вашим кодом для людей не владеющих русским языком или не имеющих русских шрифтов и русской раскладки клавиатуры. Имена получаются субъективно "некрасивыми". Кроме того, никто не гарантирует, что в одной из следующих версиях языка Microsoft не уберёт поддержку идентификаторов с национальными символами.
Что касается транскрибированных имён идентификаторов (например "peremennaya"), то это тоже не лучший выход. По тем же причинам - невладение языком, "грязность".
Так уж сложилось, что традиционно в программировании используются латинские символы, поэтому для таких системных вещей как имена идентификаторов следует использовать английский алфавит.
Плохо: txtЛогин, Проверка(), МассивФамилий, StrokaPoiska.
Хорошо: txtLogin, Check(), NamesArray, SearchString (про префиксы см. далее).

4. Не используйте имена элементов управления по умолчанию.
Этот совет имеет непосредственное отношение к пункту об осмысленных именах переменных. Если будете использовать имена по умолчанию, то вы очень быстро запутаетесь какое из 15 TextBox с номерами отвечает например за ввод имени пользователя.
Исключение: если вы задаёте вопрос на форуме и приводите образцы своего кода с просьбой попробовать его, или наоборот приводите код в качестве ответа, то имеет смысл использовать именно имена по умолчанию. Это связано с тем, что, во-первых, человеку который будет вставлять ваш код в редактор vb необходимо будет добавить форму и требуемые элементы управления и переименовывать их. Во-вторых, из имён не всегда очевиден тип элементов управления, а имена по умолчанию, как правило, совпадают с их типом (дополненные номером).
Плохо: Form1, Textbox2, ListView15.
Хорошо: frmMain, txtName, lvwListOfCommands (про префиксы см. далее).

5. Используйте префиксы типов.
Префиксы типов (так называемая венгерская нотация) - это определённые символы в начале имени переменной, которые в закодированном виде несут информацию о переменной. Общепринятыми являются следующие префиксы:
s или sz - переменная типа String
b - Byte или Boolean
i - Integer
l - Long
d - Double
s - Single
d - Date
o_ - объект
e - перечислимый тип (Enum)
g_ - глобальная переменная (Public)
m_ или loc_ - локальная переменная (Private)
и т.д.
Для элементов управления на форме:
txt - TextBox
pic - PictureBox
lbl - Label
fr или fra - Frame
tvw - TreeView
и т.д.
Для модулей:
frm - форма
mod - модуль
cls - модуль класса

Однако, следует заметить, что нет единого мнения о полезности такой записи. С одной стороны при одном взгляде на такую переменную сразу видно её особенности. С другой стороны не существует определённого стандарта такого именования, приходится производить дополнительные телодвижения при наборе имён переменных, это "уродует" имя переменной.
Лично я *всегда* использую префиксы типов только в именах элементов управления и модулей и в некоторых случаях в именах обычных переменных в особо запутанных местах.
Вы также можете "изобретать" свои префиксы. Но делать это следует осторожно и только в тех случаях, когда польза от этого перевешивает недостатки. Например в некоторых типовых случаях перед именами временных промежуточных переменных я ставлю префикс t_, в переменных получающих входную информацию in_, выходную out_.
Пожалуй сюда же следует отнести ещё один подход, хоть он и не имеет отношения к префиксам, но весьма полезен. Для типовых переменных используйте одинаковые имена. Например, перед открытием файла для хранения номера файла возвращаемого функцией FreeFile использовать переменную с именем ff. Таким образом, встречая в коде переменную ff, сразу становится понятно для чего она используется.
Плохо: lokalnaya_filename, FileName, InternetClass.
Хорошо: m_filename, txtFileName, clsInternet.

6. Капитализация vs подчёркивание.
В случаях когда имя идентификатора состоит из нескольких слов для удобства чтения их следует как-то разделить. Для этого есть два основных способа.
Капитализация - первая буква каждого слова в имени переменной записывается с заглавной буквы, остальные строчными.
Подчёркивание - слова разделяются символами подчёркивания "_".
Какой из двух способов предпочесть - дело вкуса. Однако могу порекомендовать следующий принцип: в именах локальных или промежуточных переменных используйте подчёркивание, в глобальных переменных (глобальных на уровне модуля или приложения) - капитализацию. Во-первых: капитализованные переменные выглядят более "солидно" и это выделяет их в коде. Во-вторых: это позволяет визуально различать переменные по области видимости и позволяет отказаться от использования префиксов области видимости (g_ и m_ - см. пункт о префиксах типов). Вы можете использовать любые другие схемы, если они кажутся вам более логичными и облегчают чтение и понимание кода.
Плохо: filenameslist, sfilenameslist
Хорошо: filenames_list, FileNamesList, sFileNamesList.

7. Пишите комментарии.
Старайтесь по возможности писать комментарии. Если вы покажете кому-то свой код, то ему будет намного проще сориентироваться в нём, если там будут подсказки в виде комментариев. Даже если вы не собираетесь ничего никому показывать всё равно следует писать комментарии. Так как просматривая свой код уже через месяц вы будете с трудом вспоминать что и как у вас работает и зачем нужен тот или иной кусок. Комментарии выступают как своеобразные записки (как говорит наш уважаемый администратор Bit "писюльки" :] ) самому себе на будущее.

Хорошим тонов является перед каждой значимой подпрограммой (процедурой, функцией, методом, свойством) писать небольшой заголовок с описанием подпрограммы: что она делает, входные параметры, возвращаемые значения, особенности её использования и прочие замечания. Например вот в таком виде:
Код:
Public Function CalcCheckSum(ByRef x() As Long) As Long
' Расчёт контрольной суммы
' Вход:
'    x() - последовательность для которой вычисляется контрольная сумма
' Выход:
'    значение контрольной суммы, алгоритм - crc32
' Особенности:
'    - аргумент x() передаётся по ссылке для экономии памяти - соблюдать осторожность
'    - использует загруженную ранее таблицу crc_table
...
End Function


Однако следует избегать и чрезмерного и бессмысленного комментирования.
Плохо:
' записываем в переменную c значение равное сумме переменной a и переменной b (слишком развёрнуто, очевидно из кода и без комментариев)
c = a + b
Хорошо:
' расстояние от начала координат до точки (лаконично, отражает суть)
r = Sqr(x * x + y * y)

В основном, все признают необходимость комментариев. Но на практике выполняют это условие немногие. Причина банальна - лень. Чтобы это не было таким скучным занятием можете развлекать себя, например, если вы любите ascii-art, то можете каждый комментарий заключать в красивую рамочку с использованием псевдографики. Неплохим вариантом является написание комментариев по-английски - заодно и язык подучите. Можете писать комментарии на сленге (один мой приятель как-то рассказал, что в фирме в которой он работал, обратили его внимание на то, что он пишет комментарии в "падонскам" стиле). Хотя я всё же по очевидным причинам не рекомендовал бы писать комментарии с использованием непечатной лексики.
Запомните - плохие комментарии лучше, чем вообще никаких.

8. Используйте одинаковую индексацию.
Как правило массивы индексируют начиная с 0 или 1. У обоих подходов есть свои достоинства и недостатки. Вы можете использовать тот который вам больше нравится. Но всегда используйте только эту индексацию. По крайней мере в рамках одного проекта. Это избавит вас от необходимости перед каждым массивом или коллекцией мучительно вспоминать, а потом и метаться по коду выискивая какой же индекс у вас имеет первый элемент 1 или 0.

9. Читайте чужие программы.
Когда просматриваете чужой код обращайте внимание на то как он написан, как отформатирован. Выделяйте для себя образцы удачного и неудачного кода, то что вам показалось удобным и то что вам не понравилось. Учитесь на чужом опыте.

Заключение.
Подытожив, можно сказать, что ключевыми концепциями грамотного оформления кода, из которых вытекают все приведённые положения, являются: использование "самоописывающихся" имён идентификаторов, применение комментариев, использование единого стиля на протяжении всего проекта, поддержание баланса между подробностью и лаконичностью описания.
Следуя приведённым простым правилам вы сможете писать в традиционном общепринятом стиле. Практикуйтесь, с опытом вы станете полнее понимать логику языка и процесса программирования в целом, а также приобретёте свой собственный стиль программирования.

Автор: Chan
Источник: www.bit.pirit.info/forum/
Ссылки по теме
Вызов функций по указателю
Техника программирования сложных окон в Visual Basic
Создание программы на Visual basic для вывода случайного числа в заданном интервале чисел
Visual Basic и Системный Реестр Windows
Встроенные функции VisualBasic

Вся документация по Visual Basic

 

Компьютерная документация - Главная

 
Популярные книги

Технология программирования на C++. Начальный курс

Подробнее

Photoshop CS2. Настоящий самоучитель

Подробнее

SQL для "чайников", 5-е издание

Подробнее

 

 
Новости ИТ
01.12.2008  Buffalo выпустил миниатюрные USB-накопители
01.12.2008  VENTO TA-U1 - стильный корпус представлен Asus
01.12.2008  Fujitsu-Siemens выпускает в продажу внешний ускоритель для ноутбуков
01.12.2008  Оригинальные чехлы для ноутбуков от Choiix
01.12.2008  Опубликован код драйвера для беспроводных карт Atheros
01.12.2008  Лучший блог 2008
01.12.2008  Linux запустили на Apple iPhone
01.12.2008  LG KC780
01.12.2008  MSI дополнит линейку Wind-нетбуков двумя моделями
01.12.2008  Nikon D3X - 24,5 млн пикселей для профессионалов
01.12.2008  Киловаттник HIPER M1000 с КПД выше 85%
01.12.2008  AMD впервые снизила цены линейки Radeon HD 4800
01.12.2008  Чистильщики: Wise Registry Cleaner v.3.8.2
01.12.2008  Антивирусы: RemoveIT Pro v4 SE (30.11.2008)
01.12.2008  Корпус ASUS Vento TA-U1 можно поставить вместо новогодней ёлки
01.12.2008  Диагностика: PC Wizard 2008 v.1.871
01.12.2008  Диагностика: NextSensor v.2.7.6.0 Build 1130
01.12.2008  Тестовые приложения: PassMark BurnInTest v.6.0 Build 1000 Beta 15
01.12.2008  Неофициальные драйверы для модемов Motorola
01.12.2008  Драйверы и утилиты для сетевых хранилищ D-Link
 
Полезно

 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100