6 Прозрачность: да будет свет
6
Прозрачность: да будет свет
Красота в вычислениях более важна, чем в любой другой области технологии, поскольку программное обеспечение очень сложное. Красота — основная защита против сложности.
Machine Beauty: Elegance and the Heart of Technology (1998)
—Дэвид Гелентер (David Gelernter)
В предыдущей главе акцентировалось внимание на важности текстовых форматов данных и протоколов прикладного уровня, т.е. тех форм представления, которые просты для изучения и взаимодействия. Они поддерживают качества конструкции, которые высоко ценятся в традиции Unix, но подробно обсуждаются в очень редких случаях (если вообще обсуждаются): прозрачность и воспринимаемость.
Программные системы являются прозрачными в том случае, когда они не имеют неясных мест или скрытых деталей. Прозрачность — пассивное качество. Программа прозрачна, если существует возможность сформировать простую ментальную модель ее поведения, которое фактически является предсказуемым во всех или большинстве случаев, поскольку изучая вопрос именно в аспекте механизма обработки данных, можно понять, что фактически происходит.
Программные системы являются воспринимаемыми, когда они включают в себя функции, которые способствуют мысленному построению корректной ментальной модели того, что делают данные системы и каким образом они работают. Так, например, хорошая документация повышает воспринимаемость для пользователя, а хороший выбор переменных и имен функций повышает воспринимаемость для программиста. Воспринимаемость является активным качеством. Для того чтобы ее достичь, недостаточно просто отказаться от создания непонятных программ, необходимо изо всех сил стараться создавать удобные программы[57].
Прозрачность и воспринимаемость важны как для пользователей, так и для разработчиков программного обеспечения. Однако важность этих качеств проявляется по-разному. Пользователям нравятся эти свойства в пользовательском интерфейсе, поскольку они означают более простой процесс обучения. Прозрачность и воспринимаемость в данном случае являются большой частью того, что подразумевают пользователи, когда упоминают об "интуитивно понятном" пользовательском интерфейсе. Остальное в основном сводится к правилу наименьшей неожиданности. Свойства, которые делают пользовательские интерфейсы приятными и эффективными, более подробно обсуждаются в главе 11.
Разработчикам программного обеспечения нравятся данные качества в самом коде (т.е. в той части, которая не видна пользователям), поскольку им часто требуется понимать код достаточно хорошо, для того чтобы модифицировать и отлаживать его. Кроме того, программа, разработанная так, что разобраться в ее внутренних потоках данных несложно, более вероятно, является программой, которая не отказывает из-за некорректного обмена данными, незамеченного проектировщиком. Кроме того, такую программу, вероятнее всего, можно будет изящно развивать (включая внесение изменений, позволяющих приспособиться к ней новым кураторам, принявшим эстафету).
Прозрачность является главным компонентом того, что Дэвид Гелентер называет "красотой". Unix-программисты для упоминаемого Гелентером качества часто используют более специфический термин, заимствованный у математиков, — "изящество". Изящество является комбинацией мощности и простоты. Изящный код выполняет большую работу при малых затратах. Изящный код не просто корректен — его корректность очевидна и прозрачна. Он не просто связывает алгоритм с компьютером, но также формирует понимание и уверенность в сознании того, кто его читает. В поисках изящества программисты создают лучший код. Изучение методики написания прозрачного кода является первым, значительным шагом к изучению того, как создавать изящный код, а забота о том, чтобы сделать код воспринимаемым, позволяет узнать, как сделать его прозрачным. Элегантный код характеризуется обоими качествами, как прозрачностью, так и воспринимаемостью.
Возможно, проще оценивать различие между прозрачностью и воспринимаемостью с помощью двух противоположных примеров. Исходный код ядра операционной системы Linux является в высшей степени прозрачным (принимая во внимание значительную сложность выполняемых задач). Вместе с тем, он совсем не является воспринимаемым — овладеть минимальными знаниями, необходимыми для работы с данным кодом, и понять особый язык его разработчиков трудно. Однако как только знания и понимание придут, все обретет смысл[58]. С другой стороны, библиотеки Emacs Lisp воспринимаемы, но не прозрачны. Овладеть достаточным набором знаний для настройки одного компонента просто, но постичь всю систему весьма сложно.
В данной главе рассматриваются особенности конструкций в Unix, которые поддерживают прозрачность и воспринимаемость не только в пользовательских интерфейсах, но и в тех частях программ, которые обычно не видны пользователям. В главе формулируется несколько полезных правил, которые можно применять в практическом программировании и разработке. Далее, в главе 19, описано, каким образом хорошая практика подготовки версий (такая как создание README-файла с соответствующим содержанием) может сделать исходный код настолько же воспринимаемым, насколько воспринимаема сама конструкция.
Если требуется действенное напоминание важности данных качеств, то следует помнить о том, что здравомыслие, с которым пишутся прозрачные и воспринимаемые системы, вполне может гарантировать спокойствие в будущем.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Прозрачность на кликабельных картинках
Прозрачность на кликабельных картинках На рис. 3.16 показан футер сайта-примера, в котором – после некоторого юридического текста и шокирующего дисклеймера – расположились три логотипа, на них можно нажать. Рис. 3.16. Футер сайта Вещи, оставленные на ЛунеВоспользуемся
Прозрачность и эффективность картинки
Прозрачность и эффективность картинки Я создал иконки полностью белыми PNG-изображениями, зная, что затем применю свойство opacity, чтобы отрегулировать прозрачность на уровне CSS. Такой подход изменил то, как я в некоторых ситуациях думаю о графических объектах
Слои и прозрачность таблицы
Слои и прозрачность таблицы Чтобы определить фон каждой ячейки таблицы, браузер разбивает различные элементы таблицы на шесть слоев (рис. 9.3). Фон элемента, установленный в одном из слоев, будет видим, только если у расположенных выше слоев фон прозрачный. Рис. 9.3. Схема
Прозрачность и цветовой охват
Прозрачность и цветовой охват В данной категории настроек выбирают размер сетки (шахматной доски), которой обозначается альфа-канал (прозрачные участки изображения), а также цвета ячеек этой сетки.Вы также можете выбрать цвет, которым будут отмечаться участки, цвет
Сетчатая прозрачность
Сетчатая прозрачность По многочисленным просьбам пользователей в девятой версии в системе КОМПАС-3D был доработан механизм расчета и отображения полупрозрачных объектов. Теперь в программе можно выбирать один из двух видов отображения прозрачности: сетчатая или
6 Прозрачность: да будет свет
6 Прозрачность: да будет свет Красота в вычислениях более важна, чем в любой другой области технологии, поскольку программное обеспечение очень сложное. Красота — основная защита против сложности. Machine Beauty: Elegance and the Heart of Technology (1998) —Дэвид Гелентер (David Gelernter) В предыдущей
11.5. Прозрачность, выразительность и возможность конфигурирования
11.5. Прозрачность, выразительность и возможность конфигурирования Unix-программисты унаследовали сильную склонность к созданию выразительных и конфигурируемых интерфейсов. Как и остальные программисты, они думают о том, как привести разрабатываемые интерфейсы в
Свет
Свет Существующие стандарты офисного освещения говорят, что наиболее комфортным для глаз человека считается показатель от 200 до 500 люкс. Понять, что означает эта величина, можно, сравнив ее с другими показателями: Луна имеет яркость в один люкс, горящая свеча – пять люкс, а
2.2.9.2 Прозрачность расположения данных
2.2.9.2 Прозрачность расположения данных Если в сети имеется несколько серверов баз данных, то, в целях повышения эффективности доступа к данным или из других соображений, администраторы могут перемещать или дублировать базы данных или таблицы с одного сервера на другой.
Планшетка и ребёнок: есть контакт! Но будет ли польза и не будет ли вреда? Евгений Золотов
Планшетка и ребёнок: есть контакт! Но будет ли польза и не будет ли вреда? Евгений Золотов Опубликовано 17 января 2014 Что ни говорите, а комментарии — великая вещь: написать читаемую колонку — половина удовольствия; другую получаешь, когда читаешь
Свет
Свет Как уже говорилось выше, хорошим выбором для тех, кто только начинает работать с камерой и вспышками, является постоянный свет. Речь идет об источниках, которые не вспыхивают при нажатии кнопки спуска затвора на фотокамере. Они обеспечивают вас непрерывным потоком
Прозрачность для конечных пользователей
Прозрачность для конечных пользователей Жизненно важным свойством всеобъемлющей инфраструктуры является ее почти полная прозрачность для пользователей. Такой прозрачностью обладает, например, инфраструктура сетевых коммуникаций, большинству пользователей
Свет
Свет Слово «фотография», если перевести буквально, означает «светопись». Наблюдая окружающий мир, различные объекты, человек воспринимает свет, который они излучают и отражают.От характера освещения зависит впечатление зрителя. Свет бывает разным, он меняется постоянно
Реймонд Эрик Стивен
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉