Skip to content

Commit a72a854

Browse files
authored
Add CLI design guidelines to report
Added a new section on Command Line Interface Guidelines with key design principles for developers.
1 parent 1f4bb0c commit a72a854

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

Reports/2025/#361-2025.12.29.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@
3939

4040
[@DylanYang](https://github.com/Dylan19Yang):作者向我们介绍了如何在调试 AASA(apple-app-site-association) 相关能力时,通过开发者模式使域名相关的改动可以即时的被同步到。开发者模式需要我们在对应域名上加上特定后缀,并且只对开发模式的签名文件生效。有调试相关能力需求的开发者可以参考一下。
4141

42+
### 🐢 [Command Line Interface Guidelines](https://clig.dev/)
43+
44+
[@zhangferry](zhangferry.com):这篇文章是一份开源的《命令行界面(CLI)设计指南》,核心目标是结合传统 UNIX 原则与现代需求,帮助开发者打造更易用、更友好的 CLI 程序。虽然现在 GUI 非常普及,但 CLI 以其灵活、稳定、跨平台的优势在很多场景(例如 DevOps)都在放光发热。所以了解如何更好的设计 CLI 仍有必要,以下是从文章内挑选的几条重要设计指南:
45+
46+
* 基础规范:使用对应语言的命令行参数解析库,Swift 下是 [swift-argument-parser](https://github.com/apple/swift-argument-parser);成功时返回 0,失败返回非 0;核心输出到 `stdout`(支持管道传递),日志,错误信息输出到 `stderr`(避免干扰管道)
47+
* 帮助和文档:默认运行无参数时显示简洁的帮助,`-h/--help` 对应完整的帮助说明。
48+
* 输出设计:人类可读最重要,如果为了人类可读破坏了机器可读,可以增加 `--plain` 参数输出机器可读内容,这有利于 grep、awk工具的集成
49+
* 错误处理:避免冗余输出,核心错误应该放在末尾
50+
* 参数和标志:优先使用 `flags`,而不是依赖位置读参数;所有 `flags` 都提供短格式和长格式两种(`-h/--help`);危险操作增加一个保护措施:输入名称、--force 标志等
51+
* 健壮性与兼容性:及时响应用户的输入(100ms以内),如果流程耗时增加进度反馈(进度条)
52+
* 环境变量:避免占用 POSIX 标准变量;本地用 `.env` 管理但不应把 `.env` 当做配置文件;不要使用环境变量存储密钥等重要信息,这样很容易泄漏,推荐通过文件或密钥管理服务
53+
4254
## 工具
4355

4456
> 开发过程中常用的工具,及一些新工具的介绍

0 commit comments

Comments
 (0)