Правило молчания и уровни логирования

Posted by PDSW on Sunday, July 15, 2018

TOC

философия unix

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

Нет единой, стандартизированной формулировки философии Unix, но, возможно, самое простое описание было бы: “Пишите такие программы, которые будут небольшими, простыми и очевидными. Пишите их так, чтобы они делали только одно, но делали это хорошо и могли работать совместно с другими программами”. То есть, философия сосредотачивается вокруг концепта понятий малости, простоты, модульности, мастерства, прозрачности, экономии, разнообразия, переносимости, гибкости и расширяемости.

Эта философия стала основой того, что Unix-подобные операционные системы стали основными в течение более трех десятилетий, гораздо дольше, чем любые другие семейства операционных систем, и скорее всего, мы увидим их дальнейшее расширение использования в последующих годах, в частности, в форме Linux.

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

Есть несколько очень веских причин для применения правила молчания:

  1. Первая, избегать загромождения ума пользователя информацией, которая не может быть необходимой или может даже быть ненужной. Так как, ненужная информация приводит к рассредоточнию. Кроме того, ненужные сообщения, создаваемые некоторыми операционными системами и прикладными программами иногда плохо сформулированы, и могут вызвать путаницу или ненужное беспокойство со стороны пользователей.
  2. Вторая причина, избегать загромождения экрана дисплея. Даже сегодня, пространство экрана может быть очень ограничен в некоторых особых ситуациях.
  3. Третья причина состоит в том, что программы командной строки (то есть, все программы текстового режима) на Unix-подобных операционных системах предназначены для совместной работы с pipe-ами, то есть выход из одной программы становится входом другой программы. Это является главной особенностью таких систем, и она представляет большую часть своей мощности и гибкости. Следовательно, важно иметь только действительно важную информацию, содержащуюся в выходных данных каждой программы, и, таким образом, на входе следующей программы.

Уровни логирования

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

Всего выделяют шесть уровней градации информации, которую часто используют при логировании. Вот они отсортированные по возрастанию критичности:

  • Trace - Используется только при разработке, в случае если нужно “протрейсить” - определить какая часть программы отвечает за определённую функциональ6ность.
  • Debug - Содержит диагностическую информацию, которая может быть полезна не только разработчикам (IT, sysadmins, etc.). Именно эту информацию отображают в verbose-mode. Не стоит использовать этот уровень по умолчанию ведь, в нём обычно содаржится на много (over 90%) больше информации, чем на следующих уровнях и это будет приводить к медленной работе программы.
  • Info - Общая информация, которую полезно логировать - запуск\остановка сервиса, информация о конфигурировании и т.д. Уровень “Info” это тот уровень который обычно уже доступен в рабочем приложении, но обычно он не требует нашего внимания. Это уровень логирования по умолчанию.
  • Warn - Всё что потенциально может вызвать странное поведения приложения, но то приложение может устранить самостоятельно - переключится с основного на запасной сервер, повторить операцию, укацать на отсутствующие второстепенные данные.
  • Error - Любая ошибка которая будет фатальна для текущей операции, но не фатальна для всего приложения - не получилось открыть необходимый файл, отсутствуют необходимые данные и т.д. Обычно для этих ошибок есть предопределённое поведение, которое уведомляет пользователя о причинах невозможности выполнить операцию.
  • Fatal - Любая ошибка, которая может привести к недоступности всей программы или сервиса, но при этом предохраняя от возможной потери данных. Стоит оставлять такие ошибки в случаях наиболее критических ошибок для предотвращения потери или разрушения данных.

UI/UX

Правило молчания первоначально применяется к программам командной строки, так как все программы изначально были программами командной строки. Тем не менее, это так же применимо к GUI (графических пользовательских интерфейсов) программ. То есть, невавжной и раздражающей информации следует избегать независимо от вида пользовательского интерфейса. Это и есть те самые антипаттерны UI/UX.

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

Правило молчания возникло потому, что UNIX был первоначально разработан до наличия высококачественных видео дисплеев. В большинстве случаев средствами отображения была отправка на медленный терминал печати, и каждая строка ненужного вывода приводила к значительной трате времени пользователя. Несмотря на то, что такого ограничение давно нет, отличные причины для лаконичности остаются.

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

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

Некоторые люди могут чувствовать, что правило молчания может быть применено и к уровню окружающего шума. Например, объявления через громкоговорители и заранее записанной музыки, которая постоянно играет в некоторых магазинах, ресторанах, холлах гостиниц, лифты (её часто называют лифтовой музыкой) предоставляет информацию (если музыку можно считать информацией), чем пользуются только некоторые люди. Тем не менее, другие считают это отвлекающим или даже очень раздражающим, в том числе многих людей, которые сами звучат как фоновая музыка. Таким образом, правило молчания будет означать, что молчание должно быть состояние по умолчанию, и те люди, которые хотят слушать музыку могут использовать персональные аудиоустройства или пройти на специальные места для прослушивания, вместо того чтобы добиваться от определенного процента людей раздражения, жалоб и/или необходимости носить беруши. Кроме того, объявления через громкоговорители должны быть сохранены для истинно чрезвычайных ситуаций, а не средства по умолчанию для обеспечения того, что часто является тривиальной или ненужной информации.

По материалам The Linux Information Project (LINFO)


comments powered by Disqus