В книге описывается хороший стиль Unix-программирования, многообразие доступных языков программирования, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор анализирует философию Unix, культуру и основные традиции сформированного вокруг нее сообщества. В книге объясняются наилучшие практические приемы проектирования и разработки программ в Unix. Вместе с тем описанные в книге модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix- программ и инструменты для их разработки. Отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации.
Предисловие 19
I Контекст 27
1 Философские вопросы 29
2 История: слияние двух культур 55
3 Контраст: сравнение философии Unix и других операционных систем 79
II Проектирование 109
4 Модульность: четкость и простота 111
5 Текстовое представление данных: ясные протоколы лежат в основе хорошей практики 135
6 Прозрачность: да будет свет 163
7 Мультипрограммирование: разделение процессов для разделения функций 187
8 Мини-языки: поиск выразительной нотации 215
9 Генерация кода: повышение уровня спецификации 245
10 Конфигурация: правильное начало 261
11 Интерфейсы: модели проектирования пользовательских интерфейсов в среде Unix 285
12 Оптимизация 321
13 Сложность: просто, как только возможно, но не проще 329
III Реализация 353
14 Языки программирования: C или не C? 355
15 Инструментальные средства: тактические приемы разработчика 383
16 Повторное использование кода: не изобретая колесо 409
IV Сообщество 425
17 Переносимость: переносимость программ и соблюдение стандартов 427
18 Документация: объяснение кода в Web-сообществе 451
19 Открытый исходный код: программирование в новом Unix-сообществе 471
20 Будущее: опасности и перспективы 495
A Глоссарий аббревиатур 513
Б Список литературы 517
В Персональный вклад 525
Г Корни без корней: Unix-коаны Мастера Фу 529
Предметный указатель 536