[an error occurred while processing this directive]
[an error occurred while processing this directive]


Сергей Никифоров

Присвоение имён в Active Server Pages

   В этой статье, кроме рекомендаций Microsoft по присвоению имён, я решил поместить ещё несколько других не менее важных рекомендаций по программированию Active Server Pages. Начнем-с.
   Качественно выполненный код легко прочитать, понять и усовершенстовать. Не имеет значение какой язык программирования Вы используете - существует технология, которая позволит Вам написать код действительно качественно. Так как программировать на Active Server Pages сравнительно легко, то и написать плохой, неэффективный код тоже не составляет огромного труда. Всегда пишите программный код с оглядкой на то, что его должны прочитать, осмыслить и модернизировать другие,  ведь именно так может и получиться в дальнейшем. Мы можем разделить наши усилия по написанию лучшего кода на три части:

  1. Структура
  2. Единые стандарты
  3. Проверяйте Ваш HTML

Давайте начнём со структуры...

Структура

  К сожалению большинство программистов создают код, который "жрёт" ресурсы, является тяжёлым для осмысления и усовершенствования...
  Но всё же есть выход! Разделение вашего программмного кода на логические устройства и функции сделают ваш ASP-код легким для чтения, понимая и поддержки. Кроме того это может облегчить процесс поиска "багов" в новоиспеченной программе. Важно, чтобы вся команда разработчиков без исключения следовала этому принципу.


"Использование функций делает ваш код
легким для чтения и поддержки."


Вот пример структуры, которую я использую:

<%
'------------------------------------------------------
' * Декларации
'------------------------------------------------------
Dim mLogin ' Текущий логин
Dim mrstCustomer ' ADO Recordset, который содержит данные клиента
' -------------- Конец деклараций -----------------

ґ------------------------------------------------------
ґ* Функции
ґ------------------------------------------------------

Sub Main()
' Здесь идет инициализация
End Sub

' Прочие функции
Function DoThis(sArgument)

End Function
'----------------- Конец Функций -------------------

' Инициализируем страницу
Call Main
%>

Создание функций вместо простого заполнения страницы кодом (сверху вниз). Следуя такому принципу Вы сможете создать одну функцию, и вызывать её из разных частей программы, вместо загромождения программы многочисленными повторами того или иного действия.

Создание Sub Main() для каждой страницы, вызов его из тела этой станицы. Используя Sub Main() Вы можете инициализировать различные функции, заполять локальные переменные значениями из объекта Request.   Эта функция должна управлять Вашей страницей и вызывать другие функции по мере надобности. Это что-то вроде события Form_Load в Visual Basic'е. Не бойтесь создавать дополнительные функции и вызывать их из Sub Main(), это сделает ваш код ещё более гибким и понятным..

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

  Не забывайте про область использования переменных. В Visual Basic'е различают три области использования: локальная (распространяется лишь на текущую процедуру), модульная и глобальная (доступна во всём приложении). В Active Server Pages переменная может быть либо локальный для процедуры, локальной для страницы, локальной для сессии (Session) или локальной для приложения (Application). То есть объявляйте переменную в наименьшей необходимой области использования.
  Теперь рассмотрим несколько примеров. Например, счетчик цикла надо объявлять прямо в функции. Вам нужно использовать ADO Recordset, чтобы построить HTML таблицу на вашей странице, тогда давайте объявим его на уровне  страницы. Идентификатор клиента нужен на всех станицах, так давайте сохраним его в переменной сессии (Session). Если Вы получаете доступ к базе данных непосредственно через ASP, тогда Вы можете сохранить строку ADO connection  в переменную приложения (Application), предоставляя доступ всем страницам и всем сеансам, подключенным к вашему приложению.

Единые стандарты

  Использование единых имён может сильно ускорить процесс разработки приложения.  Даже если Вы разрабатываете один, это может Вам сильно пригодиться. ASP, VBScript обычно используется для написания приложений на стороне сервера, хотя JScript или PerlScript мог быть также использованы. У VBScript'а есть свои отличительные особенности. Все переменные имеют тип Variant. Хотя в языке, таком как Visual Basic, существуют несколько типов данных: Integer (целое), Long Integer (просто Long, длинное целое), String (строка), Boolean (только два варианта - истина или ложь) и так далее... VB программист обычно идентифицирует тип переменной специальным префиксом, например strLastName.


"Использование единых имен
значительно ускоряет разработку приложения."



Так как все переменные в VBScript имеют тип данных Variant, то Вы можете спросить: "А зачем тогда нужны все эти единые стандарты в ASP ?". Переменные должны быть названы, согласно их предполагаемому типу данных. Это поможет Вам не сотворять ошибок из-за неправильно заданного типа данных. Использование единых стандартов дает более легкий доступ к ActiveX компонентам, которые требуют, чтобы тип аргументов был строго задан. Используйте такие функции преобразования, как CInt() и CStr(), чтобы убедиться в том, что переменная объявлена корректно. Далее следует краткий список префиксом к переменным, которые предлагает Microsoft. Основые типы данных использует лишь одну букву в качестве префикса, остальные же используют все три буквы префикса. Всегда вставляйте Option Explicit в начало каждой страницы. Таким образом Вы избавляете себя от головной боли, связанной с прослеживанием необъявленных переменных.

Тип данных Префикс Пример
Boolean b bFound
Byte byt bytRasterData
Collection col colWidgets
Currency cur curRevenue
Date (Time) dtm dtmStart
Double dbl dblTolerance
Error err errOrderNum
Integer i iQuantity
Long l lDistance
Object obj objCurrent
Single sng sngAverage
String s sFName
Пользовательский тип данных (User-defined type) udt udtEmployee
Variant v vCheckSum


Префиксы для области использования переменной. Введение данных префиксов упасёт Вас от конфликтов с именами и логических ошибок. 

Область использования Префикс Пример
Модульная (страница) m mbCalcInProgress
Локальная (процедура) Нет dblVelocity

 

Проверяйте Ваш HTML

  Всегда проверяйте Ваши страницы на работспособность и правильное отображение их в броузере. Для этого Вам достаточно скопировать ваш HTML код в текстовый редактор (Блокнот, WordPad ...) и сохранить его как .html (если не используете ASP) или как .asp (c использованием ASP), и открыть в броузере. На сегодняшний день броузер корпорации Microsoft - Internet Explorer занимает практически 80% рынка, однако, основной его конкурент - Netscape Communicator всё ещё держит 17-18% рынка. К тому же с выходом пакета Netscape Communicator 6.0 ожидаются большие перемены, так что было бы лучше, если Вы протестировали Ваши страницы в обоих броузерах,  тем более, что оба они являются бесплатными (freeware).

Послесловие

Вышеизложенные советы помогут Вам ускорить процесс разработки Ваших web-приложений, сделают их более лёгкими для осмысления и поддержки. Однако, все аспекты "правильного" написания программы в одной статье не изложишь, а по сему многое всё равно зависит от Вас.

P.S. Помочь Вам в дальнейшем исследовании ASP могут: сайт "Visual Basic Streets" : http://www.vbstreets.net, книга от MicrosoftPress: "Программирование Active Server Pages", сайт "Активные серверные страницы в России" : http://www.activeserverpages.ru

Удачного кодинга!

Ваш комментарий:

 


[an error occurred while processing this directive]

[an error occurred while processing this directive]