Command Line Interface Guidelines
10 hours ago
- #design-guide
- #best-practices
- #command-line
- 现代命令行程序设计指南,平衡传统 UNIX 原则与人本化改进。
- 作者包括阿南德·普拉萨德、本·菲尔什曼、卡尔·塔希安和伊娃·帕里什,并得到其他行业专家的贡献。
- 指南倡导以人为本的设计,强调可用性、可发现性和同理心,同时不牺牲 UNIX 的可组合性和一致性。
- 关键准则包括使用参数解析库、提供详尽的帮助文本、将主要输出发送到 stdout 并将错误发送到 stderr。
- 输出应默认具备人类可读性,并支持如 --json 的机器可读选项,审慎使用颜色、格式和表情符号。
- 应捕获错误并重写以提高清晰度,提供纠正建议和简易的故障报告功能。
- 参数和标志应遵循标准,优先使用标志而非参数以提升清晰度,并出于安全考虑避免在标志中传递敏感信息。
- 交互性应仅在 TTY 环境中进行,对危险操作设置提示和确认,并配备清晰的退出机制。
- 子命令应保持一致性,避免使用歧义名称,并具备输入验证、超时处理和并行执行等鲁棒性功能。
- 配置遵循优先级顺序(标志 > 环境变量 > 配置文件),分发应倾向于单二进制文件并支持轻松卸载。
- 数据收集需获得明确同意或提供透明的退出选项,建议采用网页文档和用户反馈等替代方式。