知识卡片

一致的命名规范和非模态设计,驯服了一个原本会失控的庞大命令集合

专业/工作

内容

Emacs近2400个命令能不失控,靠的不是减少命令数量,而是几十年里社区坚持的两条纪律:几乎所有命令都是非模态的(移动、搜索、切换缓冲区任何时候都能用,不需要先”退出”某个特殊状态),以及不同插件包之间在命令命名和参数提示上高度一致。这让一个原本应该混乱不堪的超大命令集合,变得像命令行工具一样——你不需要认识全部命令,但只要学会了其中一部分的使用套路,遇到没见过的新命令时也能凭经验大致猜到它的行为方式。这提示一个应对”功能持续增长导致的复杂度失控”的思路:与其在功能数量上做减法,不如在命令的行为一致性和可预测性上下功夫——数量本身不是复杂度的根源,行为不可预测才是。

参考来源

《架构之美》第11章《GNU Emacs:滋长的特性是其优势》