Appearance
AI 编程的真相,不是工具不够强,是你的工作流太野。
一、先说个扎心的事实
现在市面上的 AI 编程工具,说实话,都够强。Claude Code、Cursor、Windsurf、GitHub Copilot、Codex……
你要说谁比谁强一个数量级?没有。都是同一梯队的。
但为什么有人用这些工具能提效 36%,有人用了反而更慢?
工具都买回来了,工作流还是原始社会的。
典型症状:
- 需求没写清楚,直接让 AI 开干
- 干到一半发现理解错了,重来
- 重来几次后,AI 上下文乱了,只能新建会话
- 新建会话后,之前的知识全丢了
- 最后花的精力,比不写还多
这不是 AI 的问题,这是没有工作流的问题。
二、Spec Coding 的本质:给 AI 加护栏
那篇文章提到的"约束 + 示范 + 视觉",说白了就是一件事:给 AI 加护栏。
约束:告诉 AI 什么能做、什么不能做
比如:
- 只能用 TypeScript,不能用 JavaScript
- API 响应格式必须符合 OpenAPI 规范
- 数据库字段命名用 snake_case,代码用 camelCase
这些约束写在规格里,AI 每次生成代码都会遵守。
没有约束的 AI,就像没有交通规则的城市——每个人都能开车,但到处都是事故。
示范:告诉 AI 什么是"好的"
这比约束更进一步。约束说"不能做什么",示范说"好的是什么样"。
比如:
- 错误处理用 try-catch 还是返回 Result 类型?
- 日志打在 service 层还是 controller 层?
- 测试文件放在
__tests__/还是tests/?
最好的示范是:直接扔给它一段你们项目的代码,说"照这个风格写"。
AI 模仿能力极强,给它一个样板,比写十条规定都有用。
视觉:让规格可读、可理解
这个经常被忽略。
很多团队的规格文档,要么是一个巨大的 Word 文档,要么是 Confluence 里的一堆页面,没人看。
AI 要用这些规格,得先能"读"。
所以视觉层的意思是:规格要结构化、可索引、可检索。
像 OpenSpec 这样的工具就是干这个的——把规格变成 AI 能理解的格式。
三、有护栏的 AI vs 没护栏的 AI
举个例子
你要让 AI 帮你写一个用户登录功能。
没护栏的对话:
你:帮我写个用户登录
AI:好的,用 JWT 还是 Session?
你:JWT 吧
AI:好的,用什么数据库?
你:PostgreSQL
AI:好的,要不要记住登录?
你:要
AI:好的,那我开始写...来回好几次,每次都在补充细节,效率极低。
有护栏的对话:
你:帮我写用户登录功能,规格在 /specs/auth.md
AI:好的,我已经读取了规格。规范如下:
- JWT 认证
- PostgreSQL 存储
- 记住登录功能
- RESTful API
开始编写代码...AI 直接按规格执行,不用反复确认。
四、三层护栏总结
| 护栏 | 作用 | 示例 |
|---|---|---|
| 约束 | 划定边界 | TypeScript、命名规范 |
| 示范 | 定义标准 | 项目代码风格 |
| 视觉 | 可读可查 | 结构化规格文档 |
一句话总结
AI 编程工具都够强,缺的不是工具,是一套"约束 + 示范 + 视觉"的工作流护栏。
