СТАТЬЯ |
11.12.02
|
© Андрей
Колесов
Статья была опубликована на сайте www.
pcweek.ru
Но увлечение XML-форматом — это еще цветочки. В опубликованном пакете приведены также исходные тексты программных проектов, реализованных на VB 6.0. Весь этот набор должен, по замыслу авторов, демонстрировать не только возможности некоторой новой технологии, но и показывать, как ее могут применять независимые программисты.
В течение последних десяти лет я пишу статьи о программировании на Бейсике (www.visual.2000.ru/develop/vb).
И помимо обсуждения чисто технических приемов мне приходится довольно регулярно затрагивать вопросы “стиля программирования” и на примере присылаемых читателями вопросов показывать, что речь идет не о моде или абстрактных правилах хорошего тона, а о насущных проблемах повышения производительности работы программиста, увеличения надежности программ и снижения стоимости их сопровождения.
Правила же “хорошего стиля” на уровне кодирования отдельных программных процедур довольно просты: избегайте неявного преобразования типов данных, применяйте при прочих равных условиях раннее связывание компонентов, пишите комментарии, старайтесь, чтобы имена переменных отражали смысл их содержимого, используйте простые логические конструкции...
Так вот, обсуждаемый VB-проект — это просто великолепное учебное пособие на тему “как нельзя писать программный код”. Ну, стиль-то ладно, дело хозяйское. Какие уж там комментарии и оптимизация логических конструкций, если автор формирует переменные и массивы, которые вообще никак не используются в программе, применяет многомерные массивы для хранения заведомо линейных списков и делает много других удивительных вещей.
Возможно, магическое “используется XML-формат” должно произвести соответствующее впечатление на пользователей, но вот только почему-то тривиальная процедура ввода XML-файла в данном случае заняла не 10, а целых 70 строк кода! Да и как может быть иначе, если число тегов в XML-файле (для резервирования массива нужной длины), которое можно определить простым обращением к свойству Lengh, в этой программе выполняется таким фантастическим способом.
On Error Resume Next
Dim j, z j = -1: z = “~”
Do While (z <> “”)
j = j + 1
z = nodelist(j).nodename
If Err.Number > 0 Then Exit Do
Loop
ReDim Names(0 To j-1)
А чего стоит такой шедевр логической конструкции: index = 1
While (index > 0)
‘ тут что-то делаем, но index не меняется
index = 0
Wend которая совершенно эквивалентна строке
‘ тут что-то делаем
На этом я прерву разбор данного полета, так как в программе в 350 строк такие перлы встречаются на каждом шагу. Отмечу только, что для установки и регистрации DLL размером 55 Кб пользователю нужно скачать с Web-cайта инсталляционный модуль объемом 3 Мб.
За дополнительной информацией обращайтесь в компанию Interface Ltd.
INTERFACE Ltd. |
|