Эрик Реймонд - Искусство программирования для Unix
- Название:Искусство программирования для Unix
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:неизвестен
- Город:Москва
- ISBN:5-8459-0791-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эрик Реймонд - Искусство программирования для Unix краткое содержание
Книги, подобные этой, редко появляются на прилавках магазинов, поскольку за ними стоит многолетний опыт работы их авторов. Здесь описывается хороший стиль Unix- программирования, многообразие доступных языков программирования, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор анализирует философию Unix, культуру и основные традиции сформированного вокруг нее сообщества. В книге объясняются наилучшие практические приемы проектирования и разработки программ в Unix. Вместе с тем описанные в книге модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix-программ и инструменты для их разработки. Отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации.
Книга будет полезной для широкой категории пользователей ПК и программистов.
Искусство программирования для Unix - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
72
Особенно опасным вариантом этой атаки является вход в именованный Unix-сокет, где программы, создающие и использующие данные, пытаются найти временный файл.
73
"Конкуренция" (race condition) представляет собой класс проблем, в которых корректное поведение системы зависит от двух независимых событий, происходящих в правильном порядке, однако отсутствует механизм, для того чтобы гарантировать фактическое возникновение этих событий. Конкуренция приводит к появлению периодических проблем с временной зависимостью, которые могут создавать значительные трудности при отладке.
74
Средство STREAMS было гораздо более сложным. Деннису Ритчи приписывают следующее высказывание: "Слово "streams" означает нечто другое, если его прокричать".
75
Разработчики основного конкурирующего с GNOME пакета KDE вначале использовали технологию CORBA, но отказались от нес в версии 2.0. С тех пор они ищут более легковесные IPC-методы.
76
Лес Хаттон в письме, где речь идет о его очередной книге, Software Failure , сообщает: "Если для измерения плотности дефектов учитывать только выполняемые строки, то плотность дефектов в зависимости от языка почти на порядок меньше плотности дефектов в зависимости от квалификации инженера".
77
Для менее технически подготовленных читателей: скомпилированная форма C-программы производится из ее исходного C-кода путем компиляции и связывания. PostScript-версия troffрументов troff-документа является производной от исходного troff-кода; чтобы осуществить это преобразование используется команда troff . Существует множество других видов производных. Почти все они могут быть выражены с помощью make-файлов.
78
Любой язык Тьюринга мог бы теоретически использоваться для универсального программирования и теоретически является в точности таким же мощным, как любой другой язык Тьюринга. На практике некоторые языки Тьюринга были бы слишком сложными для использования за пределами специфической или узкой предметной области.
79
Стандарт POSIX для регулярных выражений вводит некоторые символьные диапазоны, такие как [[:lower:]]
и [[:digit:]]
. Кроме того, отдельные специфические средства используют дополнительные символы-шаблоны, не описанные здесь. Однако для интерпретации большинства регулярных выражений приведенных примеров достаточно.
80
Для тех, кто не является Unix-программистом: инструментарий X представляет собой графическую библиотеку, которая предоставляет GUI-объекты (такие как надписи, кнопки и выпадающие меню) подключенным к ней программам. В большинстве других операционных систем с графическим интерфейсом предоставляется только один инструментарий, используемый всеми. Unix и сервер X поддерживают несколько инструментариев. Это является частью разделения политики и механизма, которое в главе 1 было названо целью проектирования X-сервера. GTK и Qt являются двумя наиболее популярными X-инструментариями с открытым исходным кодом.
81
Однако неочевидно, что XSLT мог бы быть несколько проще при тех же функциональных возможностях, поэтому его нельзя охарактеризовать как плохую конструкцию.
82
Концепции и практическое применение XSL .
83
http://www.netlib.org/
84
Включать собственные иллюстрации как примеры кода также весьма традиционно для книг по Unix, в которых описывается программа pic(1) .
85
# Цитата принадлежит Алану Перлису (Alan Perils), который провел ряд передовых работ по модульности программного обеспечения приблизительно в 1970 году. Двоеточие в данном случае означало разделитель или ограничитель операторов в различных потомках языка Algol, включая Pascal и С.
86
Для читателей, никогда не программировавших на современных языках сценариев: словарь представляет собой таблицу поиска связей ключ-значение, часто реализуемую посредством хэш-таблицы. C-программисты тратят большую часть времени кодирования, реализуя словари различными сложными способами.
87
Когда-то я сам был мастером awk , но кто-то напомнил мне, что данный язык применим к проблеме создания HTML-документов, поэтому единственный awk-пример в данной книге связан именно с ней.
88
Существует сайт проекта GhostScript .
89
Первое руководство по PostScript .
90
Реализации JavaScript с открытыми исходными кодами на С и Java доступны на сайте .
91
16 20 миллионов — сдержанная оценка, основанная на графиках Linux Counter и других источниках по состоянию на середину 2003 года.
92
17 Программа Kmail , которая рассматривалась в главе 6, по этой причине даже не отслеживает внешние ссылки в HTML-документах.
93
Дальнейшее развитие этой точки зрения приведено в книге [3].
94
Языки сценариев часто решают данную проблему более изящно, чем С. Для того чтобы понять, как именно они это делают, следует изучить методику потоковых документов (here documents) в shell и конструкцию тройных кавычек в Python.
95
Здесь CGI означает не Computer Graphic Imagery, а технологию Common Gateway Interface (интерфейс общего шлюза), которая применяется для создания интерактивных Web-документов.
96
Для отображения скрытых файлов используется параметр -а утилиты ls(1) .
97
Суффикс "rc" связан с системой, предшествующей Unix, CTSS. В ней присутствовала функция сценария команд, которая называлась "runcom". В ранних Unix-системах имя "rc" использовалось для загрузочного сценария операционной системы как дань runcom в CTSS.
98
Никто не знает действительно изящного способа представить эти распределенные данные о настройках. Переменные среды, вероятно, не являются этим способом, однако для всех известных альтернатив характерны одинаково неприятные проблемы.
99
4 В действительности, большинство Unix-программ вначале проверяют переменную VISUAL
, и только если она не установлена, обращаются к переменной EDITOR. Это пережиток того времени, когда пользователи имели различные настройки для строковых и визуальных редакторов.
100
См. стандарты GNU-программирования на странице .
101
Файл .xinitrc
является аналогом каталога автозагрузки в Windows и других операционных системах.
102
Диспетчер окон (window manager) поддерживает связи между окнами на экране и запущенными заданиями. Диспетчер окон управляет такими функциями, как расположение, отображение заголовков, свертывание, развертывание, перемещение, изменение размеров и затенение окон.
Читать дальшеИнтервал:
Закладка: