На главную страницу AlgoNet В сотрудничестве с ZDNet
АРХИВ СТАТЕЙ 2001-3-19 на главную / новости от 2001-3-19
AlgoNet.ru
поиск

 

Место для Вашей рекламы!

 

Все новости от 19 марта 2001 г.

Систематическое описание выявляет проблемы языка VBA


Король В. Н. Visual Basic 6.0, Visual Basic for Applications 6.0. Язык программирования. Справочник с примерами. Издание второе, исправленное. М., "КУДИЦ-ОБРАЗ", 2000. - 448 с.

Эта книга - действительно очень полезное пособие для тех, кто занимается разработкой в среде как автономного Visual Basic, так и Visual Basic for Applications, входящего, в частности, в состав офисных приложений Microsoft.

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

Основной объем книги занимает последовательное (в алфавитном порядке) описание всех элементов языка, а также довольно подробный рассказ об объектной модели FileSystemObject.

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

Изучение книги будет полезным и для опытных VB/VBA-программистов - они наверняка найдут в ней функции, о существовании которых раньше не подозревали. Безусловный интерес представляют также разделы, посвященные группированию элементов языка по функциональному назначению, общим принципам написания VBA-приложений, а также примеры полезных программ.

Однако, рекомендуя книгу VB/VBA-разработчикам, следует сделать несколько важных замечаний.

Автор, безусловно, прав, говоря о том, что приведенные в книге сведения годятся как для VBA-, так и для VB-программистов. Однако было бы крайне полезно более четко рассмотреть структуру этого инструмента, чтобы читатели лучше поняли, о какой его части ведется рассказ. К сожалению, введение под названием "Что такое Visual Basic" не столько кратко, сколько весьма запутанно отвечает на данный вопрос.

А на самом деле это можно сделать довольно просто, внимательно посмотрев на содержимое используемых компонентов в окнах Object Browser и References.

Так, в среде автономного Visual Basic видно, что эта среда использует три обязательные библиотеки - VBA, VB (встроенные объекты и процедуры) и VBRUN (пополнение к VB). А среда программирования в офисном приложении включает только библиотеку VBA плюс библиотеки объектов данного приложения. Соответственно в книге речь идет только об элементах, включенных в общую библиотеку VBA.

Тут было бы также полезно немного сказать о принципах расширения функций среды программирования за счет подключения дополнительных библиотек объектов. Это важно хотя бы для того, чтобы читатели поняли, например, что объект Printer является встроенным в VB и не может быть подключен к VBA, а объект ADO доступен для обеих систем.

Систематическое изложение элементов языка наглядно демонстрирует явную функциональную перегруженность VB/VBA, наличие большого числа дублирующих функций и конструкций, а также путаницу, создаваемую легкомысленной идей о допущении неявного преобразования данных.

Помимо того, что все это усложняет описание и изучение языка, появляется риск снижения надежности создаваемых программ (например, два альтернативных варианта реализации одного алгоритма могут приводить к разным результатам).

Понимание многих функций языка VB требует более детального изучения некоторых основ реализации данной системы. Иначе описание, выхваченное из контекста общей проблемы, может просто ввести пользователя в заблуждение. В качестве такого примера можно привести большую группу функций обработки строковых переменных, применение которых требует хорошего понимания принципов кодировки ANSI и Unicode.

В книге по этому вопросу дается фактически перевод весьма двусмысленных фрагментов оригинальной документации. (По этому вопросу рекомендую посмотреть статью "Особенности работы со строковыми переменными", опубликованную по адресу: www.microsoft.ru/msdn/library/kolesov.)

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

Например, его утверждение о том, что VB/VBA не использует опцию "При вводе двух цифр года использовать интервал столетия", являет неверным. (Обработка дат в VB имеет довольно много подводных камней. Подробнее об этом говорится в статье "Особенности обработки дат в VB" на том же Web-сервере.) Трудно также согласиться с автором в том, что скорость обработки многомерного массива зависит от порядка использования его индексов.

В целом книга отличается очень удачным макетом верстки. Однако в ней имеются некоторые ошибки корректуры и печати. Например, содержание страницы 26 продублировано на странице 24.

И все же, несмотря на отмеченные недостатки, хочется еще раз порекомендовать VB/VBA-разработчикам внимательно изучить книгу, а автору пожелать поскорее подготовить ее следующее издание.

 

← февраль 2001 13  14  15  16  19  20  21  22  23 апрель 2001 →
Реклама!
 

 

Место для Вашей рекламы!