Сущность технологии СОМ. Библиотека программиста

В этой книге СОМ исследуется с точки зрения разработчика C++. Написанная ведущим специалистом по модели компонентных объектов СОМ, она раскрывает сущность СОМ, помогая разработчикам правильно понять не только методы модели программирования СОМ, но и ее основу. Понимание мотивов создания СОМ и ее аспектов, касающихся распределенных систем, чрезвычайно важно для тех разработчиков, которые желают пойти дальше простейших приложений СОМ и стать по-настоящему эффективными СОМ-программистами. Показывая, почему СОМ для распределенных систем (Distributed СОМ) работает именно так, а не иначе, Дон Бокс дает вам возможность применять эту модель творчески и эффективно для ежедневных задач программирования.

Отрывок из произведения:

Когда я сел писать это предисловие, мне не давали покоя следующие мысли:

Будет ли портрет Дона на четвертой стороне обложки, и если да, то какой длины будут его волосы?

Осознают ли читатели этой книги, что у Дона есть индивидуализированные (personalized) лицензионные платы, способные читать интерфейс «IUNKNOWN»?

Что за чертовщину нужно писать в предисловии к книге?

У меня было две идеи насчет того, что написать в этом предисловии. Первая – высказать несколько мыслей о конструировании СОМ, которые я уже давно собираюсь записать. Вторая идея – польстить Дону Боксу в той же мере, в какой он польстил мне обращением с просьбой написать предисловие к своей книге. В конце концов я решил осуществить обе идеи.

Рекомендуем почитать

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач. В таком случае без этой книги вам не обойтись. А может быть, вы – опытный менеджер, желающий пересмотреть свои принципы лидерства? Тогда, опять же, эта книга для вас. Вне зависимости от возраста, пола и социального статуса, она поможет вам укрепить свои позиции в роли лидера программистов. Материал изложен довольно компактно и легко укладывается в голове. Стоя в книжном магазине и раздумывая, что же купить, задайте себе один простой вопрос: «Нужно ли мне совершенствовать свои лидерские навыки?» Полагаю, вы ответите: «Да», – а значит, моя книга окажется для вас небесполезной.

Не можете сосредоточиться на работе? Постоянно отвлекаетесь на проверку электронной почты, социальные сети и новостные ленты? Пора воспользоваться советами от ведущих IT-специалистов и погрузиться в работу с головой.

Освойте один из самых ценных навыков – умение сосредоточиться на сложной задаче, не отвлекаясь на мелочи. Только так можно справиться со сложной информацией и добиться лучших результатов за минимальное время. Погружение в работу – это суперсила в нашей все более конкурентной экономике XXI века.

В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования — ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многие другие. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счету перед вами — ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель. Конечно, опытные программисты могут найти некоторые идеи автора достаточно очевидными, но и для таких найдутся темы, которые позволят пересмотреть устоявшиеся взгляды и выйти на новый уровень мастерства. Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы. Издательство выражает благодарность Шувалову А. В. и Курышеву А. И. за помощь в работе над книгой.

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.

Прочитав эту книгу, вы научитесь:

Бороться с недостатками программного обеспечения;

Избегать ловушек, связанных с дублированием знания;

Создавать гибкие, динамичные и адаптируемые программы;

Избегать программирования в расчете на совпадение;

Защищать вашу программу при помощи контрактов, утверждений и исключений;

Собирать реальные требования;

Осуществлять безжалостное и эффективное тестирование;

Приводить в восторг ваших пользователей;

Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

В этой книге известный автор Скотт Мейерс раскрывает секреты настоящих мастеров, позволяющие добиться максимальной эффективности при работе с библиотекой STL.

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

Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

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

Не секрет, что основная масса софтостроения сосредоточена в секторе так называемой корпоративной разработки: от комплексных информационных систем предприятия до отдельных приложений. Поэтому немалая часть сюжетов касается именно Enterprise Programming.

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

В книге мне хотелось показать наш софтостроительный мир разработки корпоративных информационных систем не с парадного фасада описаний программных сред, подходов и технологий, а изнутри. Насколько это получилось – судить читателю.

Популярные книги в жанре Программирование

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

При разработке больших проектов, часто возникает необходимость обращаться из одного модуля программы к объектам, существующим в другом модуле. Такие объекты, как правило, существуют в единичных экземплярах, поэтому наиболее распространенной практикой является создание глобальных объектов данного типа и ссылка на них из других модулей программы с применением ключевого слова extern. Так, например, при создании ATL проекта в среде MSVC++, мастер проекта создает экземпляр класса – наследника от CComModule, _Module, в главном файле проекта, и помещает объявление extern CMyModule _Module в stdafx.h, что делает доступным объект _Module из других файлов проекта. Однако при таком подходе отсутствует механизм, предотвращающий создание нескольких объектов данного типа. Кроме того, поскольку объект создается статически, отсутствует возможность управлять процессом его создания. То есть, объект создается автоматически, до момента его фактического применения в программе. Это может приводить к некоторым неприятным последствиям: если объект работает с некоторой инфраструктурой, то инициализация и освобождение этой инфраструктуры должны быть помещены, например, в этот же класс.

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

template‹class T, int Rows, int Columns›

class Matrix {

 //…

};

Предположим, в процессе разработки выяснилось, что производительность программы неудовлетворительна, и узким местом является функция умножения матриц с элементами типа float, и что эту проблему можно решить путем использования intrinsic-функций процессора. При наличии соответствующей поддержки компилятора это легко можно сделать при помощи так называемой частичной специализации шаблонов классов:

Сижу тут как-то, программку сочиняю, тут смотрю, царь зверей пожаловал. Вопрос задать пришел. Спрашивает как же OpenGL в MFC то вставить? Сначала думал отмажусь, потом смотрю, настойчивый такой царь попался. Письма шлет, желает знать как же все-таки её туда вставить-то. Вот и решил я примерчик на MFC состроить дабы цари меньше утруждали себя, а больше на солнышке бы нежились, чтоб у царей спокойно и хорошо все было, тогда и нам, простым зверушкам жить хорошо будет. И так поехали.

Данная книга — продолжение предыдущей книги автора, "Delphi. Только практика". Также как и в "Delphi. Только практика", в данном издании подробно рассмотрены программы для сетей, различные шуточные программы, простые игрушки, некоторые полезные приложения, разработка приложений в стиле Windows XP. В частности, здесь можно найти такие примеры как бесплатная отправка SMS, FTP-клиент, простое шифрование, CGI-сценарии и многое другое. Описаны методы работы с системным реестром Windows и INI-файлами, а также некоторые важные аспекты программирования на системном уровне с применением функций Windows API. Для облегчения понимания программ каждый пример содержит комментарии сложных строк кода.

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

Демонстрационное приложение (только .exe) (72 kb)

Демонстрационное приложение (исходный код) (44 kb)

Демонстрационное приложение

Компьютерная графика всегда была одним из самых интересных проявлений развития информационных технологий. Давным-давно, во времена текстовых терминалов никто даже и представить себе не мог, что пройдет совсем немного времени и образы фантастических монстров будут создаваться не с помощью папье-маше и пластилина, а прямо на экране компьютера. Это сейчас все привыкли к графическому интерфейсу, и изображением на экране уже никого не удивишь. На самом деле надо поставить памятник человеку, который впервые решил нарисовать картинку из текстовых символов – такого рода искусство было очень распространено в свое время, и его отголоски до сих пор встречаются в различного рода конференциях. История развития компьютерной графики интересна сама по себе и заслуживает отдельной книги, но данный документ имеет чисто технический характер, поэтому мы не будем останавливаться на этапах становления искусства рисования на экране монитора, а обратимся сразу к нашим дням. Стандартом де-факто на компьютерах под управлением операционной системы Windows стали две 3D библиотеки: OpenGL и Direct3D (часть библиотеки DirectX). OpenGL, разработанный фирмой Silicon Graphics, уже стал классикой и характеризуется своей устойчивостью и стабильностью интерфейсов. Напротив, Direct3D, детище Microsoft, постоянно изменяется, совершенствуется и двигается вперед. Последняя версия этого продукта имеет номер 8, и это не конец. В этой статье я бы хотел познакомить читателя с некоторыми аспектами использования этого нового продукта, указать на его отличия от предыдущей версии и продемонстрировать его использование для решения одной из весьма распространенных задач – построения графика функции двух переменных. Исходный код примера вы может получить с этого сайта и свободно использовать в своих приложениях.

Демонстрационная программа – 161 KB

Исходные тексты – 39 KB

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

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

Разработка программ зачастую напоминает священный ритуал, построенный на произнесении ряда обязательных магических заклинаний. Особенно это касается Windows приложений. Windows-заклинания позволяют вывести графическое окно, обработать поступающие сообщения. Порядок их следования предопределен священными руководствами. Часто эти руководства заменяются шпаргалкой, кратко фиксирующей основной каркас:

// Каркасное приложение Windows 95

Оставить отзыв
Еще несколько интересных книг

Роман одного из самых популярных современных нидерландских писателей Леона де Винтера «Небо Голливуда» выстроен по законам голливудского психологического триллера. Блестящие в прошлом, но опустившиеся на дно жизни актеры под видом полицейских вступают в схватку с гангстерами, ограбившими казино на миллионы долларов, и постепенно выясняется, что события развиваются по сценарию, который один из них написал много лет назад.

В Одессе нет улицы Лазаря Кармена, популярного когда-то писателя, любимца одесских улиц, любимца местных «портосов»: портовых рабочих, бродяг, забияк. «Кармена прекрасно знала одесская улица», – пишет в воспоминаниях об «Одесских новостях» В. Львов-Рогачевский, – «некоторые номера газет с его фельетонами об одесских каменоломнях, о жизни портовых рабочих, о бывших людях, опустившихся на дно, читались нарасхват… Его все знали в Одессе, знали и любили». И… забыли?..

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

В Одессе нет улицы Лазаря Кармена, популярного когда-то писателя, любимца одесских улиц, любимца местных «портосов»: портовых рабочих, бродяг, забияк. «Кармена прекрасно знала одесская улица», – пишет в воспоминаниях об «Одесских новостях» В. Львов-Рогачевский, – «некоторые номера газет с его фельетонами об одесских каменоломнях, о жизни портовых рабочих, о бывших людях, опустившихся на дно, читались нарасхват… Его все знали в Одессе, знали и любили». И… забыли?..

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

В Одессе нет улицы Лазаря Кармена, популярного когда-то писателя, любимца одесских улиц, любимца местных «портосов»: портовых рабочих, бродяг, забияк. «Кармена прекрасно знала одесская улица», – пишет в воспоминаниях об «Одесских новостях» В. Львов-Рогачевский, – «некоторые номера газет с его фельетонами об одесских каменоломнях, о жизни портовых рабочих, о бывших людях, опустившихся на дно, читались нарасхват… Его все знали в Одессе, знали и любили». И… забыли?..

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