Книга: Искусство программирования для Unix
11.6.6. Модель редактора ed
11.6.6. Модель редактора ed
Для всех предыдущих моделей характерна весьма низкая интерактивность. В них используется только управляющая информация, переданная во время запуска и обособленная от данных. Однако многим программам после запуска требуется управление с помощью продолжительного диалога с пользователем.
Традиционно для Unix, простейшая модель проектирования интерактивного интерфейса иллюстрируется на примере строчного редактора ed(1). В число других классических примеров включаются ftp(1) и sh(1), оболочка Unix. Программа ed(1) принимает в качестве аргумента имя файла и модифицирует данный файл. На входе программа принимает командные строки. Некоторые из команд отражаются на выходных данных на стандартном выводе для немедленного просмотра пользователем, как часть диалога с программой.
Реальный пример сеанса работы в редакторе ed(1) включен в главу 13.
Многие программы в Unix, подобные браузерам и редакторам, придерживаются данной модели, даже когда редактируемые ими именованные ресурсы не являются текстовыми файлами. В качестве примера можно упомянуть символьный GNU-отладчик
Программы, подчиняющиеся модели ed, не так широко можно использовать в сценариях, как можно было бы использовать более простые типы интерфейсов, аналогичные фильтрам. Таким программам можно передать команды через стандартный ввод, но генерировать последовательности команд (и интерпретировать любой их вывод) сложнее, чем просто устанавливать значения переменных окружения и параметры командной строки. Если действие команд не является настолько предсказуемым, что они могут выполняться вслепую (например, с потоковым документом (here document) в качестве входных данных и игнорируя вывод), то управление ed-подобными программами требует протокола и соответствующего конечного автомата в вызывающем процессе. Это приводит к проблемам, отмеченным в главе 7 при обсуждении управления подчиненными процессами.
Тем не менее, данная модель является простейшей и предоставляет наибольшие возможности использования в сценариях, которые доступны для полностью интерактивных программ. Соответственно, она остается весьма полезной как компонент модели "разделения ядра и интерфейса", которая описывается ниже.
- 11.6.1. Модель фильтра
- 11.6.2. Модель заклинаний
- 11.6.3. Модель источника
- 11.6.4. Модель приемника
- 11.6.5. Модель компилятора
- 11.6.6. Модель редактора ed
- 11.6.7. Rogue-подобная модель
- 11.6.8. Модель "разделения ядра и интерфейса"
- 11.6.9. Модель CLI-сервера
- 11.6.10. Модель интерфейсов на основе языков
- 7.4. Модель системы автоматизированного проектирования защиты информации
- 5. Продукционная модель знаний
- 2.3 Модель мини-драйвера IDE
- 7.1 Общая информационная модель и стандарт WBEM
- 5.2. Основные приемы работы, элементы текстового редактора
- Модель МП
- 2.1.1. Физическая и логическая модель данных
- У меня нет драйверов для звуковой карты. На самой карте модель не написана. Как найти и установить звуковой драйвер?
- 2.3. Эмпирическая модель обучения Дэвида Колба и ее применение в практике бизнес-тренинга
- 7.3.4. Сервисное постоянное представительство в Модельной Конвенции ООН
- 8.9.3. Динамическая модель системы
- Глава 3. Модель для сборки