6.2.4. Прозрачность и редактируемые формы представления

6.2.4. Прозрачность и редактируемые формы представления

Другой идеей, возникающей в связи с данными примерами, является значение программ, которые переводят проблему из области, где обеспечить прозрачность трудно, в область, где реализовать ее легко. Программы audacity, sng(1) и пара tic(1)/infocmp(1) обладают данным свойством. Объекты, которыми они манипулируют, "не удобны для зрения и рук". Аудиофайлы не являются визуальными объектами, а редактировать блоки PNG-аннотаций сложно, несмотря на то, что PNG-изображения видимы. Все три приложения превращают изменение своих двоичных файловых форматов в проблему, решить которую пользователи вполне могут благодаря своей интуиции и навыкам, полученным из повседневного опыта.

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

Все преимущества текстовых форматов файлов данных, рассмотренных в главе 5, также применимы к текстовым форматам, которые создаются утилитами sng(1), infocmp(1) и им подобными. Одной важной прикладной задачей для sng(1) является автоматическое создание PNG-аннотаций с помощью сценариев. Такие сценарии просты в написании, поскольку существует утилита sng(1).

Каждый раз при разработке конструкции, которая затрагивает редактирование некоторого вида сложного двоичного объекта, традиция Unix, прежде всего, заставляет разработчика выяснить, возможно ли написать средство, аналогичное sng(1) или паре tic(1)/infocmp(1), которое способно без потерь выполнять преобразование данных в редактируемый текстовый формат и обратно. Устоявшегося термина для программ такого рода не существует, но в данной книге они называются текстуализаторами (textualizers).

Если двоичный объект создается динамически или имеет очень большие размеры, то может быть непрактично или невозможно охватить текстуализатором всю его структуру. В таком случае эквивалентная задача состоит в написании браузера. Принципиальным примером является утилита fsdb(1), отладчик файловой системы, поддерживаемый в различных Unix-системах. Существует Linux-эквивалент, который называется debugfs(1). Двумя другими примерами является утилита psql(1), используемая для просмотра баз данных PostgreSQL, и программа smbclient(1), которую можно применять для опроса Windows-ресурсов на Linux-машине, оснащенной пакетом SAMBA. Все эти утилиты являются простыми CLI-программами, которыми можно управлять с помощью сценариев и тестовых программ.

Написание текстуализатора или браузера является весьма полезным упражнением по крайней мере по четырем причинам.

• Получение превосходного образовательного опыта. Могут существовать другие такие же хорошие способы для изучения структуры объектов, но нет ни одного, который был бы очевидно лучше.

• Возможность создавать дампы содержимого структуры для просмотра и отладки. Такие инструменты упрощают создание дампов. Следовательно, появляется возможность получать больше информации, что, вероятно, ведет к более глубокому пониманию.

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

• Получение кода, который можно использовать повторно. Если тщательно подходить к написанию браузера/текстуализатора и поддерживать CLI-интерпретатор совершенно отдельно от библиотеки маршалинга/демаршалинга, то впоследствии может выясниться, что данный код можно повторно использовать для реального приложения.

После создания текстуализатора или браузера вполне может появиться возможность применить модель "разделения ядра и интерфейса" (см. главу 11), в которой созданный текстуализатор/отладчик будет использоваться как ядро. Все обычные преимущества данной модели будут также применимы.

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

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

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

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

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

Параметрические и редактируемые объекты

Из книги 3ds Max 2008 автора Верстак Владимир Антонович

Параметрические и редактируемые объекты Все геометрические объекты программы 3ds Max 2008 можно условно разделить на две категории: параметрические и редактируемые.Большинство объектов в 3ds Max являются параметрическими, то есть объектами, которые определяются


Прозрачность и цветовой охват

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

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


Сетчатая прозрачность

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

Сетчатая прозрачность По многочисленным просьбам пользователей в девятой версии в системе КОМПАС-3D был доработан механизм расчета и отображения полупрозрачных объектов. Теперь в программе можно выбирать один из двух видов отображения прозрачности: сетчатая или


Редактируемые сетки (Editable Mesh)

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

Редактируемые сетки (Editable Mesh) Объекты Editable Mesh (Редактируемая сетка) имеют следующую сетчатую структуру (рис. 5.1): Рис. 5.1. Структура сетчатой поверхности, присваиваемой по умолчанию• Polygon (Полигон) – это многоугольник или замкнутая последовательность, состоящая из трех или


Редактируемые полигональные сетки (Editable Poly)

Из книги Руководство администратора баз данных Informix. автора Кустов Виктор

Редактируемые полигональные сетки (Editable Poly) В отличие от редактируемых сеток Editable Mesh (Редактируемая сетка) инструменты редактирования подобъектов Editable Poly (Редактируемая полисетка) собраны в двух свитках. Первый имеет имя Edit Geometry (Правка геометрии), название второго


2.2.9.2 Прозрачность расположения данных

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

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


5.1. Важность текстовой формы представления

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

5.1. Важность текстовой формы представления Каналы и сокеты передают двоичные данные так же, как текст. Однако есть важные причины, для того чтобы примеры, рассматриваемые в главе 7, были текстовыми: причины, связанные с рекомендацией Дуга Макилроя, приведенной в главе 1.


6.2.4. Прозрачность и редактируемые формы представления

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

6.2.4. Прозрачность и редактируемые формы представления Другой идеей, возникающей в связи с данными примерами, является значение программ, которые переводят проблему из области, где обеспечить прозрачность трудно, в область, где реализовать ее легко. Программы audacity, sng(1) и


5.1. Важность текстовой формы представления

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

5.1. Важность текстовой формы представления Каналы и сокеты передают двоичные данные так же, как текст. Однако есть важные причины, для того чтобы примеры, рассматриваемые в главе 7, были текстовыми: причины, связанные с рекомендацией Дуга Макилроя, приведенной в главе 1.


6 Прозрачность: да будет свет

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

6 Прозрачность: да будет свет Красота в вычислениях более важна, чем в любой другой области технологии, поскольку программное обеспечение очень сложное. Красота — основная защита против сложности. Machine Beauty: Elegance and the Heart of Technology (1998) —Дэвид Гелентер (David Gelernter) В предыдущей


Прозрачность для конечных пользователей

Из книги Реконизм. Как информационные технологии делают репутацию сильнее власти, а открытость — безопаснее приватности автора Сименко Илья Александрович

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


Прозрачность на кликабельных картинках

Из книги Wiki-правительство [Как технологии могут сделать власть лучше, демократию – сильнее, а граждан – влиятельнее] автора Новек Бет

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


Редактируемые запросы

Из книги автора

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