Hasty Briefsbeta

双语

Command Line Interface Guidelines

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