4.4. Библиотеки

4.4. Библиотеки

Одним из последствий того влияния, которое стиль Unix-программирования оказал на модульность и четко определенные API-интерфейсы, является устойчивая тенденция к разложению программ на фрагменты связующего уровня, объединяющего семейства библиотек, особенно общих библиотек (эквивалентов структур, которые в Windows и других операционных системах называются динамически подключаемыми библиотеками или DLL (Dynamically-Linked Libraries)).

Если подходить к проектированию тщательно и обдуманно, то часто возникает возможность разделить программу таким образом, чтобы она состояла из главной части поддержки пользовательского интерфейса (т.е. политики) и совокупности служебных подпрограмм (т.е. механизма) без связующего уровня вообще. Данный подход представляется особенно целесообразным в ситуации, когда программа должна выполнять большое количество узкоспециальных операций с такими структурами данных, как графические изображения, пакеты сетевых протоколов или блоки управления аппаратного интерфейса. В статье "The Discipline and Method Architecture for Reusable Libraries" [87] собрано несколько общих полезных, конструктивных советов, исходящих из традиций Unix, особенно полезных для решения проблем управления ресурсами в библиотеках такого вида.

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

Существует оборотная сторона данной проблемы. В мире Unix библиотеки, поставляемые как библиотеки, должны сопровождаться тестовыми программами.

API-интерфейсы должны сопутствовать программам и наоборот. API, для использования которого необходимо написать С-код и который невозможно без труда вызвать из командной строки, очень тяжело изучать и использовать. И наоборот, невероятно сложно использовать интерфейсы, единственной открытой и документированной формой которых является какая-либо программа и которые невозможно просто вызвать из программы на С, — например, route(1) в прежних Linux-системах.

Генри Спенсер.

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

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Электронные библиотеки

Из книги Работа в Интернете автора Макарский Дмитрий

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


Известные библиотеки

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

Известные библиотеки Ветвь HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs содержит список известных операционной системе библиотек (в виде параметров строкового типа, значение которых определяет название библиотеки). Известные операционной системе библиотеки всегда


Бесплатные библиотеки

Из книги КОМПАС-3D V10 на 100 % автора Кидрук Максим Иванович

Бесплатные библиотеки Перечисленные выше библиотеки и приложения – это далеко не все, с помощью чего система КОМПАС-3D облегчает жизнь инженеру. Есть еще много других утилит, которые входят в стандартную поставку или распространяются отдельно и предназначены для


Библиотеки материалов

Из книги 3ds Max 2008 для дизайна интерьеров автора Семак Рита

Библиотеки материалов После того как материал готов, его требуется сохранить. Материалы хранятся в формате Material Libraries (*mat) (Библиотека материалов). Для собственных материалов желательно создать отдельную библиотеку. Это можно сделать следующим образом.1. На панели


4.4. Библиотеки

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

4.4. Библиотеки Одним из последствий того влияния, которое стиль Unix-программирования оказал на модульность и четко определенные API-интерфейсы, является устойчивая тенденция к разложению программ на фрагменты связующего уровня, объединяющего семейства библиотек,


Библиотеки

Из книги Основы AS/400 автора Солтис Фрэнк

Библиотеки В OS/400 библиотека — объект, который используется для поиска других объектов в базе данных. В отличие от многоуровневой иерархии каталогов в ОС ПК и Unix, библиотека OS/400 имеет одноуровневую иерархию. Для иллюстрации рассмотрим структуру имен объектов OS/400.Чтобы


Библиотеки и библиотеки

Из книги Что вы все о копирайте, лучше бы книжку почитали автора Мошков Максим

Библиотеки и библиотеки Известно, что большие собрания пополняются за счет малых. Небезынтересно узнать — на каких условиях? Наверняка ведь считается неэтичным просто скачать текст у другого библиотекаря и выложить в своей библиотеке. А как они это делают?Известно, что


Библиотеки

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Библиотеки Один из характерных аспектов разработки ПО ОО-способом - возможность создавать его на основе существующих библиотек. ОО-среда должна обеспечивать хорошие библиотеки и механизмы создания новых


Интернет-библиотеки

Из книги Интернет для ваших родителей автора Щербина Александр

Интернет-библиотеки Однажды я попал в больницу. И если первые дни скучать мне не приходилось — было худо, то, когда я пошел на поправку, наверное, пропал бы со скуки. А выручил от скуки меня Интернет, куда умеет выходить мой продвинутый мобильник. Я накачал книжек и читал


Что содержат библиотеки?

Из книги Наглядный самоучитель работы на нетбуке автора Сенкевич Г. Е.

Что содержат библиотеки? Для удобства работы в Windows 7 предусмотрены библиотеки. Они выглядят как папки, однако, в отличие от папок, библиотеки существуют только в представлении операционной системы, объединены в системную папку Библиотеки, а в дерево дисков и папок не


1.5. Библиотеки

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

1.5. Библиотеки Впервые библиотеки (виртуальные папки) появились еще в Windows Vista Beta 1, но почему-то эту функцию не включили в состав релиза Vista. В Windows 7 данная функция появилась вновь. Виртуальная папка (библиотека) объединяет несколько обычных папок, возможно, расположенных на


Библиотеки

Из книги Реестр Windows 7 автора Климов Александр Петрович

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


Библиотеки

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

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


Библиотеки доступа

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Библиотеки доступа В мире приложений баз данных сложилось несколько устоявшихся подходов к работе с базами данных. Для InterBase можно выделить около пяти таких подходов: это работа с базой данных через BDE (Borland Database Engine, см. глоссарий), использование ODBC, применение OLE DB (ADO),


Библиотеки

Из книги Установка, настройка и восстановление Windows 7 на 100% автора Ватаманюк Александр Иванович

Библиотеки Польза следующего нововведения явно очевидна. В Windows 7 существуют специальные папки Документы, Изображения, Музыка и Видео, с которыми пользователи работают достаточно часто. Если раньше, в Windows Vista или Windows ХР, каждая подобная папка ссылалась на одну реальную


Библиотеки dll

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Библиотеки dll Библиотеки dll (dynamically linked libraries):* содержат группу взаимосвязанных подпрограмм* находятся в откомпилированном файле* предназначены для обращения к ним из различных программОни находятся в файле с расширением .dll либо в текущем каталоге приложения (локальные),