Насколько важно добавлять тихие / подробные флаги в новые инструменты Unix? - PullRequest
3 голосов
/ 24 января 2010

Я пишу несколько сценариев Ruby в стиле Unix, которые принимают флаги опций. Обычно я пишу много STDOUT.puts и STDERR.puts отчетов в этих скриптах. Теперь мне интересно, будет ли «хорошо» вставлять флаги --verbose или -q для включения или выключения полезного вывода в STDERR.

Два аргумента против этого:

  1. это сделает программу более сложной,
  2. пользователи уже могут отключить вывод журнала, перенаправив STDERR в / dev / null

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

И второй вопрос: если молчаливые / подробные флаги - хорошая идея, должна ли многословность быть по умолчанию?

Могут ли некоторые гуру программирования UNIX посоветовать?

Ответы [ 2 ]

4 голосов
/ 24 января 2010

Но разве это не противостоит принцип создания небольших программ что делать одну вещь хорошо?

Как бы вы пошли извлекать сообщения об ошибках или статус в отдельную программу? Они часть программы, выполняющей "одну вещь хорошо". Программа, которая не позволяет диагностировать проблемы, не справляется со своими задачами.

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

3 голосов
/ 24 января 2010

Инструменты, которые я должен перенаправить в STDERR, чтобы заставить их замолчать, - это инструменты, которые я не использую. Не так сложно поддерживать тихую работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...