控制点上移,从代码到架构
AI 正在改变软件开发的方式。Cursor、Claude Code、Copilot 这些工具让编码速度提升了数倍,但也带来了新的挑战:代码写得太快,理解跟不上,项目很容易腐化。
这篇文章分享我在 AI 辅助开发中保持项目一致性的一些实践。
核心洞察:瓶颈变了
传统软件开发的瓶颈是编码。设计完成后,大量时间花在实现上。
flowchart LR
A[设计] --> B[编码]
B --> C[Review]
C --> D[修改]
D --> B
AI 辅助开发打破了这个瓶颈。编码变得很快,但新的问题出现了:
flowchart LR
A[设计] --> B[AI编码]
B --> C[代码量暴增]
C --> D[理解跟不上]
D --> E[架构腐化]
E --> F[更多patch]
F --> E
编码不再是瓶颈,理解和架构才是。
方法论:控制点上移
要打破这个负循环,关键是把控制点从”代码”上移到”架构”。
flowchart TB
subgraph Control[控制层]
A[Spec文档]
B[Owner审阅]
end
subgraph Constraint[约束层]
C[agents.md]
D[类型系统]
E[项目规则]
end
subgraph Execution[执行层]
F[AI生成代码]
G[Prototype]
H[生产代码]
end
A --> B
B --> C
B --> D
B --> E
C --> F
D --> F
E --> F
F --> G
G -->|验证通过| H
G -->|需要调整| A
1. Spec 文档驱动
把脑海里的架构变成和 AI 讨论的 spec 文档:
- 概要设计:系统边界、模块划分、核心流程
- 架构图/流程图:用 mermaid 或手绘,让 AI 理解上下文
- DDD 思路:bounded context、聚合、领域语言
不需要细到接口签名。模块边界清晰,AI 就不会跨模块乱搞。
flowchart LR
A[脑海中的架构] --> B[Spec文档]
B --> C[与AI讨论]
C --> D[AI生成代码]
D --> E[代码符合架构]
2. 自底向上构建
很多人习惯自顶向下:先设计接口,再实现细节。但在 AI 辅助开发中,我发现自底向上更有效:
- 先做配置:配置是系统的”骨架”,定下来后 AI 生成的代码就有约束
- 先定类型:类型系统是天然的约束,让 AI 在框里活动
- 从不易变的开始:基础设施、工具函数、配置管理
这样做的好处:
- 更容易获得良好的抽象
- 更容易进行测试覆盖
- AI 生成的代码有锚点,不会飘
3. 约束前置
与其事后 review 代码,不如事前约束 AI:
flowchart LR
subgraph Constraints[约束]
A[agents.md]
B[pyright]
C[ESLint]
D[项目规则]
end
E[AI] --> Constraints
Constraints --> F[符合规范的代码]
- agents.md / AGENTS.md:写清楚项目的架构、约定、禁忌
- 类型系统:pyright、TypeScript,静态分析是最好的约束
- 项目规则:命名规范、目录结构、commit 格式
AI 读了这些约束,生成的代码一致性会好很多。
4. 早期重构
重构应该在最早的时候进行,而不是等代码堆积成山:
- 代码量小,重构成本低
- 最容易利用 AI 的生成能力
- 最不容易受幻觉影响
等到项目复杂了再重构,AI 会产生更多幻觉,因为它无法完全理解所有上下文。
5. 快速验证,慎重生产
flowchart LR
A[想法] --> B[Prototype]
B --> C{验证}
C -->|通过| D[生产化]
C -->|失败| E[调整想法]
E --> A
D --> F[留重构空间]
- 尽快 prototype:用 AI 快速验证想法
- 慎重生产:验证通过后再决定是否生产化
- 留重构空间:不要过早固化,保持灵活性
正反馈循环
好的实践会形成正反馈:
flowchart LR
A[好架构] --> B[AI生成正确代码]
B --> C[省时间]
C --> D[优化架构]
D --> A
差的实践会形成负反馈(要避免):
flowchart LR
A[烂架构] --> B[代码到处patch]
B --> C[越来越乱]
C --> D[没时间重构]
D --> A
团队协作
在多人协作中,一致性更重要:
- 项目有 Owner:Owner 审阅 spec,保持架构一致性
- Review spec,不只是 review 代码:比传统 code review 更高效
- AI review 辅助:让 AI 检查代码是否符合 spec
flowchart TB
A[Owner] -->|审阅| B[Spec]
B -->|指导| C[开发者1]
B -->|指导| D[开发者2]
C --> E[代码]
D --> E
E -->|AI Review| F{符合Spec}
F -->|是| G[合并]
F -->|否| H[修改]
H --> E
工程师角色转变
AI 辅助开发正在改变工程师的角色:
| 传统 | AI 辅助 |
|---|---|
| 写代码 | 设计架构 |
| Debug | 审阅 spec |
| 重复劳动 | 创造性思考 |
工程师的核心价值变成了:
- 架构抽象能力:基于当前理解设计合理的架构
- 业务理解:对当前情况和未来进行抉择
- 质量把控:确保 AI 生成的代码符合预期
这本就是架构师的任务。有了 AI 辅助编码,我们可以有更多时间放在设计更容易维护的架构上,反过来又方便了 AI 编码,实现正反馈。
总结
AI 辅助开发的核心是人机协作:
- 人负责:架构决策、业务理解、质量把控
- AI 负责:快速实现、重复劳动、代码生成
保持项目一致性的关键:
- 控制点上移:从代码到 spec
- 约束前置:用规则和工具约束 AI
- 早期重构:趁代码量小的时候
- 快速验证:prototype 快,生产慢
- 正反馈循环:好架构 → 好代码 → 更好架构
AI 不会取代工程师,但会取代不会用 AI 的工程师。掌握 AI 辅助开发的方法论,才能在这个时代保持竞争力。
AI 辅助开发下,如何保持项目一致性
https://blog.wh1isper.top/2026/02/02/2026-02-02-AI-Assisted-Development-Consistency/