CLI 设计指南:从机器优先到以人为本
Command Line Interface Guidelines

四十年来,命令行界面(CLI)从晦涩难懂的机器指令演变为现代开发者不可或缺的工具。这份由 Docker Compose 联合创始人 Aanand Prasad 和 Ben Firshman 等人打造的开源指南,旨在重塑 CLI 的设计哲学。文章指出,过去的 CLI 是“机器优先”的,而现代 CLI 必须转向“以人为本”。它强调简单模块的组合、跨程序的一致性,以及在信息输出上做到“恰到好处”。无论是构建新工具还是优化现有程序,这份指南都提供了从设计原则到具体实践的宝贵建议,帮助开发者在保留 UNIX 传统的同时,打造出更友好、更强大的命令行体验。
命令行依然是计算机中最多功能的角落,它让你能够拨开帷幕,洞察真相,并以图形界面无法企及的复杂度和深度与机器进行创造性交互。
HN 评论区
53- 有评论者指出,CLI 工具在检测到用户误用时直接打印帮助信息是糟糕的 UX,相比之下 Windows 98 时代的 F1 独立 HTML 帮助窗口体验远优于当前 Linux 界对 pager 和默认输出的无谓争论。
- 一位从业者强调,工具不应无条件向 standard error 输出诊断信息,这违背了 Unix 的 quiet tool 哲学,且标准错误流应保留给真正的异常而非常规提示。
- 关于终端配色,有观点认为开发者不应硬编码颜色,若未检测到用户配置,除红色外不应使用其他颜色,必须检查终端背景是浅色还是深色以避免可读性问题。
- 评论者批评现代 CLI 设计缺乏想象力,过度纠结于'纯粹性'而非解决实际问题,导致无法像 GUI 或 PowerShell 那样灵活处理交互式与非交互式场景的区分。
- 针对'友好提示'的争议,有资深用户主张工具应绝对安静,只执行用户指令而不进行猜测、建议或提供未请求的帮助,因为过度'贴心'往往比沉默更令人恼火。