CLI-интерфейсы по-человечески @PodlodkaShow

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ธ.ค. 2024

ความคิดเห็น • 2

  • @sstansm7f
    @sstansm7f 7 หลายเดือนก่อน

    Общие требования к CLI утилитам из этой презентации
    10:42 наличие мануала, актуального утилите. От себя добавлю: имеется юридический аспект, если утилита поставляется пользователю за пределы компании-разработчика. В случае если использование утилиты привело к убыткам у пользователя возможны иски к поставщику утилиты.
    11:10 должен быть help вызываемый при помощи флагов -h, --help или при вызове утилиты без аргументов.
    14:40 вывод команды: человеко читаемый (по умолчанию) и машинно читаемые форматы, например, json (может быть ещё csv?).
    17:15 возможность запуска критических операций в режиме Dry Run. От себя добавлю: должен быть запрос на подтверждение критической операции: yes/no? $
    19:30 отображать ход выполнения длительных операций
    20:30 для отображения DEBUG сообщений использовать режим Verbose
    21:20 тексты ошибок должны быть понятны пользователю и не должны содержать внутреннюю информацию понятную только программистам
    23:10 позиционные аргументы и флаги командной строки должны представлять единообразную систему
    24:00 число позиционных аргументов не должно быть больше 2, чтобы пользователь не запутался
    24:40 желательно иметь короткие версии для флагов - экономит место
    28:10 если много команд, то желательно их поместить в иерархию или дерево команд
    29:15 именование команд из 2 позиционных аргументов: object action либо, более редко встречается, - action object. Далее идут флаговые аргументы.
    29:55 порядок object action либо action object должен быть единообразным для CLI утилиты
    30:45 если выполняется длительная операция, то должен быть graceful shutdown, то есть обработка прерывания от клавиатуры Ctrl+C - закрытие открытых, заблокированных и т.п. ресурсов
    31:55 передача аргументов через конфигурационные файлы и переменные окружения
    32:40 при смешанной системе передачи аргументов утилите должны быть приоритеты: наибольший приоритет имеют флаги, потом переменные окружения, потом конфиги
    33:20 дистрибуция должна требовать от пользователя наименьшее количество шагов по установке
    39:30 коды завершения утилиты (exit codes) важны для использования CLI утилиты в сценариях (скриптах) автоматизации

  • @ArtemCYOU
    @ArtemCYOU ปีที่แล้ว

    charm неожиданное открытие надо будет изучить что это такое, так как мы не знаем что это такое)