Perl - статьи




Создавайте продуманные интерфейсы командной строки - часть 3


  • Используйте двойной дефис (--) в качестве префикса для длинных наименований флагов (--verbose, --interactive, --readwrite, --input, --output).

    Флаги, являющиеся полными словами улучшают читаемость команд (например, в shell-скриптах). Двойные дефисы также помогают отличить длинные имен флагов от расположенных рядом имён файлов.

  • Если флаг ожидает ассоциированное с ним значение, предоставьте опциональный знак = между именем флага и его значением.

    Одни люди предпочитают визуально ассоциировать значение с предшествующим ему флагом::

    > lustrate -i=sample_data -op=normalize -b=1000 --fallback=log -o=proc_data

    Другие нет:

    > lustrate -i sample_data -op normalize -b1000 --fallback log -o proc_data

    А некоторые могут предпочитать смешивать эти два стиля:

    > lustrate -i sample_data -o proc_data -op=normalize -b=1000 --fallback=log

    Предоставьте им возможность выбора.

  • Предусмотрите возможность "компоновки" нескольких однобуквенных флагов в один (используя один дефис).

    Иногда раздражает печатать дефисы для целой серии флагов:

    > lustrate -i sample_data -v -l -x

    Разрешите опытным пользователям также писать:

    > lustrate -i sample_data -vlx

  • предоставляйте многобуквенную версию для каждого однобуквенного флага.

    Сокращённые формы флагов хороши для опытных пользователей, но они могут вызывать затруднения у новичков: тяжело запомнить и ещё труднее понять. Не вынуждайте людей напрягаться. Дайте им более понятную многословную альтернативу для сокращённого флага; полные слова легче запомнить и легче понять, т.к. они сами себя документируют в shell-скриптах.

  • Всегда допускайте - в качестве специального имени файла.

    Широко используемое соглашение состоит в том, чтобы указывать дефис (-) на месте имени входного файла, что означает "считать со стандартного ввода", и дефис на месте имени выходного файла, что означает "вывести на стандартный вывод".

  • Всегда допускайте -- в качестве ограничителя перед именами файлов.

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




    Содержание  Назад  Вперед