AI时代的编程圣经:Unix哲学的17条法则为何比以往更重要 | 帖子

Vercel CEO Guillermo Rauch 分享了一张图,将经典的Unix哲学重新定义为"成功进行Agentic编程的17条法则"。这些诞生于上世纪的设计原则,在AI Agent大行其道的今天,反而焕发出了新的生命力。

这17条法则分别是:

1. 模块化法则:编写简单的部件,用清晰的接口连接
2. 清晰法则:清晰胜于聪明
3. 组合法则:设计程序时要考虑与其他程序的连接
4. 分离法则:策略与机制分离,接口与引擎分离
5. 简洁法则:为简洁而设计,只在必要时增加复杂性
6. 节俭法则:只有当证明别无他法时,才写大型程序
7. 透明法则:为可见性而设计,让检查和调试更容易
8. 健壮法则:健壮性是透明性和简洁性的产物
9. 表示法则:将知识折叠进数据,让程序逻辑保持简单和健壮
10. 最小惊讶法则:在接口设计中,永远做最不令人惊讶的事
11. 沉默法则:当程序没有什么惊人的事要说时,就什么都不说
12. 修复法则:当必须失败时,要尽早失败,并大声报错
13. 经济法则:程序员的时间是昂贵的,优先节省它而非机器时间
14. 生成法则:避免手工编码,尽可能用程序来写程序
15. 优化法则:先做原型再打磨,先让它跑起来再优化
16. 多样性法则:不要相信任何"唯一正确方式"的说法
17. 扩展性法则:为未来而设计,因为它来得比你想象的更快

为什么这些老原则在Agent时代更加重要?

评论区的讨论揭示了深层原因。有人指出,"沉默法则"对Agent的意义已经发生了质变——Unix时代它意味着"不要打印不必要的输出",而在Agent时代它意味着"不要采取不必要的行动"。同样的哲学,但当程序可以批量修改你的代码库时,风险等级完全不同。

另一位开发者补充道:Unix哲学对Agent的价值被严重低估了——小型、可组合的工具,清晰的输入输出契约,幂等的步骤,可重放的日志。Agent越是可检查,你就越不需要盲目信任那些"魔法"。

还有人将Python之禅与这些法则对照:
- "显式优于隐式"在调试非确定性系统时变得至关重要
- "可读性很重要"因为你会不断盯着traces、prompts和工具定义
- "错误永远不应该静默传递"映射为:永远要暴露LLM失败、工具失败、解析失败
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。

也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。

关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。

也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。

当我们把编程的执行权交给AI Agent时,我们实际上是在把几十年积累的工程智慧编码进系统提示词里。Unix哲学不再只是程序员的行为准则,而是成为了约束AI行为的宪法。

清晰胜于聪明,简洁胜于复杂,可检查胜于黑箱——这些原则在人类程序员时代是美德,在Agent时代则是生存法则。
 
 
Back to Top
粤ICP备2021131327号