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

  Рет қаралды 3,862

defer panic

defer panic

Жыл бұрын

Возможно, вам покажется, что говорить в 2023м о консольных приложениях странно, но в докладе мы покажем, почему CLI-приложения еще актуальны. Разберемся, какие инструменты помогут нам баланс и сделать такие приложения максимально удобными и понятными пользователю. На закуску предложим шаблон с конфигами, который можно унести к себе в команду.
❤️ Реквизиты, если у вас есть желание поддержать меня и развитие канала:
Boosty - dfrp.cc/boosty
Patreon - dfrp.cc/patreon
Donation Alerts - donationalerts.com/r/deferpanic
ETH - tomakado.eth
TON - tomakado.ton
BTC - 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo
Слайды: tomakado.github.io/cli-for-hu...
Cobra - cobra.dev
Полезные библиотеки и инструменты:
- github.com/mattn/go-isatty
- github.com/mattn/go-colorable
- github.com/briandowns/spinner
- github.com/fatih/color
- github.com/erikgeiser/promptkit
- pkg.go.dev/os/signal
- github.com/spf13/viper
- goreleaser.com
- github.com/tomakado/install-t...
Пост про отладочные логи: t.me/nikitonsky_pub/47
Логгер, имплементирующий идеи из поста 👆: github.com/tomakado/logo
Понравилось видео и хочешь узнать что-то еще про Go Crew? Забирай весь плейлист на podlodka.io/gocrew или купи билет на следующий сезон конференции is.gd/auKynm.
Подпишись на канал ‪@PodlodkaShow‬ - каждую неделю ребята выкладывают новые видео про то, как устроена работа и жизнь в IT!
#go #cli

Пікірлер: 2
@sstansm7f
@sstansm7f 2 ай бұрын
Общие требования к 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 неожиданное открытие надо будет изучить что это такое, так как мы не знаем что это такое)
WHAT’S THAT?
00:27
Natan por Aí
Рет қаралды 14 МЛН
Double Stacked Pizza @Lionfield @ChefRush
00:33
albert_cancook
Рет қаралды 96 МЛН
ЧУТЬ НЕ УТОНУЛ #shorts
00:27
Паша Осадчий
Рет қаралды 10 МЛН
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 7 М.
This Makes Golang CLI Development So MUCH Better
7:34
Melkey
Рет қаралды 22 М.
КАК НАЧАТЬ ПОНИМАТЬ LINUX (2024)
21:10
PLAFON - Канал о линуксе
Рет қаралды 114 М.
Пишем надёжный бэкенд // The 12 Factor App
28:03
Building a CLI application with Golang
12:31
cdruc
Рет қаралды 35 М.
WHAT’S THAT?
00:27
Natan por Aí
Рет қаралды 14 МЛН