Беседы о программировании
Один психолог дал детям по две дощечки и куску веревки и предложил им пересечь комнату, не касаясь пола. Дети разрезали веревку пополам, привязали доски к ногам и прошли через комнату.
Тогда он дал им по одной доске, и многие догадались, что можно прокатиться на ней через комнату, если привязать веревку к ее концу. Дети пересекли комнату даже быстрее, чем в тот раз, когда в их распоряжении были две доски, - тогда они использовали более очевидный, но менее эффективный способ.
Когда разработчики создают приложения нового поколения с помощью технологии OLE 2.0, есть риск, что они тоже будут рассматривать ее как комплекс возможностей и будут полагать, что правильное решение - это такое, в котором задействованы все компоненты, вместо того чтобы применять их выборочно.
Пример. Недавно я разговаривал с разработчиками чикагской фирмы SPSS, которые предложили мне предварительный вариант программы статистического анализа, использующей OLE 2.0. Проблема вывода на экран в SPSS 7.0 решена значительно лучше, чем в предыдущих версиях продукта, где программа сессии захватывалась в прокручивающийся буфер, напоминающий телетайпный вывод. В новой модели на экран выводится дерево объектов, в котором наглядно представлены логически сгруппированные методы, комментарии и заключения.
Если бы каждый узел полученного в результате дерева рассматривался как полноценный OLE 2.0-объект, пользователи, по мнению создателей, заметили бы накладки, возникающие при объектных разработках, и сочли, что продукт работает невыносимо медленно. К тому же есть архитектурные ограничения, например существующая версия библиотеки Microsoft Foundation Classes сделала бы такую конструкцию весьма ненадежной. Многие пользователи быстро исчерпали бы лимит в 32 Кб, отведенный на последовательно организованные объекты, и им пришлось бы начать новую сессию.
"ОБЪЕКТНЫЕ ПОЛУФАБРИКАТЫ"
Команда разработчиков фирмы SPSS под руководством Стива Хенкелса предложила новаторский подход - "объектные полуфабрикаты". Подобные объектам элементы не подвергаются полной OLE 2.0-обработке до тех пор, пока не будет свободного времени или пока действия пользователя не укажут, что данному объекту необходим полный набор функций.
"Мы разработали двойной интерфейс, - сказал Эндрю Волазек, главный инженер по ПО и ведущий разработчик нового пакета Output Navigator. - Мы перенесли рендеринг и разбивку на страницы в управляющий объект, используя их оригинальный интерфейс наряду с OLE-интерфейсом, Оригинальные функции выполняет созданная сотрудниками SPSS динамически подгружаемая библиотека".
Ральф Бренсьер, ведущий инженер по разработке входящего в пакет SPSS 7.0 нового редактора основных централизованных таблиц, отметил, что такой подход добавляет проблем разработчикам. "Мы хотим, чтобы API занимал как можно меньше места", - сказал он. Это становится все труднее по мере того, как между контейнером и сервером возникают дополнительные интерфейсы.
Впрочем, как отметил Луис Релинг, старший вице-президент по разработке продуктов, это создает преимущества при управлении проектами. На собраниях группы основное внимание уделялось индивидуальным компонентам, а программисты, работающие, например, с классом-контейнером, используют готовый контейнер до тех пор, пока не будет готова своя версия, которую можно будет включить в программу и воспользоваться предоставляемыми ею дополнительными возможностями.
SPSS 7.0 укажет путь для использования новых возможностей платформы, не позволяя этим возможностям заморочить разработчикам голову настолько, что они забудут о том, что на них по-прежнему лежит ответственность за дифференцированную разработку.
Связаться с Питером Кофи можно через MCI Mail по адресу: 357-1756, или через CompuServe по адресу: 72631,113, или по Internet 3571756 @ MCIMAIL.COM.
ПИТЕР КОФИ