Общие требования к 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 утилиты в сценариях (скриптах) автоматизации
Общие требования к 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 утилиты в сценариях (скриптах) автоматизации
charm неожиданное открытие надо будет изучить что это такое, так как мы не знаем что это такое)