Infinity

无限进步


  • Home
  • Archive
  •   

© 2026 Max

Theme Typography by Makito

Proudly published with Hexo

AI 辅助编程经验:把“抽卡”变成“可控产能”

Posted at 2026-03-04

  • 1. 先把心态摆正:LLM 更像补全器,不是推理器
  • 2. 最关键的变量:高质量上下文 + 明确验收
  • 3. 推荐工作流:先 Plan 再 Execute(不要一上来就让它开写)
  • 4. 让项目“自描述”:把隐性知识显性化
    • 4.1 全局规范文档(一个就够,别写太多)
    • 4.2 分形文档(懒加载上下文)
    • 4.3 源码头部三行注释:INPUT / OUTPUT / POS
  • 5. 控制上下文:一个 session 只做一件事
  • 6. 安全第一:隔离环境 + 最小权限
  • 7. 用测试/验收 harness 替代人肉 Code Review
  • 8. 把常用套路沉淀成 Skill,把探索交给子智能体
  • 9. 记录决策原因(ADR):给未来的你和 AI 一个锚点
  • 10. 最后总结:把 AI 当“高速实习生”,不是“全自动交付机器”

很多人第一次用 AI 写代码,会经历同一个循环:

  • 一开始惊艳:几句话就能跑起来。
  • 接着失望:同一个问题反复改,越改越乱。
  • 最后分化:有人把 AI 当玩具,有人把它变成生产力。

我的结论很简单:AI 写代码的上限,不在模型有多强,而在你把它放进什么样的工程系统里。

这篇文章我想分享一套我自己更偏“工程化”的用法:目标是让 AI 从“概率抽卡机”,变成“有护栏、有验收、可迭代”的交付流水线。


1. 先把心态摆正:LLM 更像补全器,不是推理器

LLM 的核心机制是根据上下文预测下一个 token,它可以表现得很像“在推理”,但多数时候它是在做高概率补全。

所以你会看到这些现象:

  • 同一段需求,换个表述,结果差很多。
  • 它能写出看起来很对的代码,但细节一跑就爆。
  • 它会非常自信地胡说八道(尤其在上下文不足时)。

这不是“你不会提问”,而是模型的工作方式决定了:默认输出并不稳定。

因此,AI 对使用者的提升是“乘法关系”:

  • 你本来就能做正确的架构权衡、能兜底、能验收 → AI 放大你的产能。
  • 你对业务/工程不熟,无法判断对错 → AI 放大混乱。

把这点想清楚,后面的策略才有意义。


2. 最关键的变量:高质量上下文 + 明确验收

AI 不是“知道一切”,它只是在你给的上下文里做局部最优补全。

所以真正的秘诀不是“问得更花”,而是:

  • 给它足够的上下文(业务边界、约束、现有实现、依赖关系)。
  • 把验收标准写出来(什么算完成,什么算失败)。

一句很俗但很真诚的话:

你不写验收标准,AI 就会自己发明一个。

通常它发明出来的标准就是:代码看起来像那么回事。


3. 推荐工作流:先 Plan 再 Execute(不要一上来就让它开写)

我自己基本固定成一个节奏:

  1. 先让 AI 输出计划(Plan)
  • 拆成原子任务(涉及哪些文件/函数)
  • 明确输入输出(I/O)
  • 写验收标准(测试点/接口契约/边界条件)
  1. 我确认计划没问题(特别是边界与 trade-off)

  2. 再让 AI 按计划逐步执行(Execute)

  • 每次只改一小段
  • 改完立刻跑测试 / lint / 类型检查
  • 失败就回滚或修复,不让错误扩散

这样做的好处是:你把“探索空间”先收敛了,AI 的输出会稳定很多。


4. 让项目“自描述”:把隐性知识显性化

AI 最大的坑之一是:老项目有大量隐性约束。

比如:

  • 改了 A 字段要同步更新 B 表。
  • 某个字段必须先校验库存才能写。
  • 某段逻辑历史上踩过坑,所以才这么写(但代码里没有原因)。

人类靠经验记住了,AI 看不到,就会在重构时把这些约束全抹掉。

我的做法是让项目尽量“自描述”,把隐性知识写成 AI 能读懂的东西。

4.1 全局规范文档(一个就够,别写太多)

常见文件名例如:AGENTS.md / CLAUDE.md / project.md / .cursorrules。

内容建议包含:

  • 项目概览:业务目标、核心价值、目标用户
  • 技术栈:语言/框架/版本(非常重要,别让 AI 用错语法)
  • 架构约定:模块划分、依赖关系、目录结构
  • 关键约束:API 路由前缀、错误处理、认证机制、命名规范
  • 开发规范:lint/formatter、git 提交规范、日志格式、测试要求

原则:够用就行,写多了反而过期。

4.2 分形文档(懒加载上下文)

如果你用的 AI 工具会在搜索/进入目录时自动读取目录下的说明文件,那就可以利用它:

  • 每个业务模块目录放一个 CLAUDE.md
  • 里面只写这几件事:
    • 这个模块负责什么/不负责什么(边界)
    • 关键类/关键入口
    • 业务规则与约束
    • 常见修改场景(新增/改动怎么做)

这比“全局大文档”靠谱,因为模块文档离代码更近,更不容易过期。

4.3 源码头部三行注释:INPUT / OUTPUT / POS

这是我非常推荐的一个小技巧:

  • INPUT:依赖什么(外部服务/表/配置/上游调用)
  • OUTPUT:提供什么(对外接口/返回结构/副作用)
  • POS:在系统中的地位(模块定位)

因为 AI 读文件通常是从头开始读,你把语义放在第一屏,它就不容易误解。


5. 控制上下文:一个 session 只做一件事

AI 写代码质量下降,很多时候不是它“变笨了”,而是:

  • 上下文太长,关键约束被挤掉
  • 历史对话里混了太多目标,导致它目标漂移

所以我会刻意:

  • 一个会话只做一个功能/一个任务
  • 做完就开新会话
  • 旧会话里重要结论要沉淀到文档/规则里,而不是靠“记得住”

有点像写代码别靠 IDE 缓存:重要信息应该落盘。


6. 安全第一:隔离环境 + 最小权限

AI 的误操作不是“会不会发生”,而是“什么时候发生”。

建议:

  • 能在 sandbox / 测试库跑的,不要在生产库跑
  • 给 AI 的权限越小越好(尤其是删除、迁移、批量脚本)
  • 任何破坏性操作都需要人工二次确认

这不是不信任 AI,这是对系统负责。


7. 用测试/验收 harness 替代人肉 Code Review

AI 可以在很短时间生成海量代码,人类很难像以前一样逐行 review。

所以要把质量控制从“人工读代码”迁移到“自动验收”:

  • 清晰的验收标准(接口契约、边界条件、性能指标)
  • 完整的测试体系(单测/集成测试/回归测试)
  • 尽可能让 AI 自己写测试,并让测试约束它

最理想的状态是:

让 AI 在 harness 里奔跑,而不是在生产里裸奔。


8. 把常用套路沉淀成 Skill,把探索交给子智能体

当你发现自己反复对 AI 说同样的规则、同样的纠错、同样的命令,其实就说明:这应该被沉淀。

  • 常用提示词、规则、纠错流程 → 沉淀成 Skill(复用)
  • 大范围搜索、读文档、对比方案 → 交给子智能体(省主上下文)

主会话尽量只保留“决策所需的信息”,不背无关的噪音。


9. 记录决策原因(ADR):给未来的你和 AI 一个锚点

很多“看起来很丑”的实现,其实是历史约束下的最优解。

如果不记录原因,AI 或者后来的同事在重构时很容易把它“优化掉”,然后踩回老坑。

所以我建议:

  • 关键架构决策写 ADR
  • 写清楚:背景、可选方案、最终选择、取舍、风险、回滚策略

这类信息属于高价值上下文,能显著减少后续抽卡。


10. 最后总结:把 AI 当“高速实习生”,不是“全自动交付机器”

我现在更愿意把 AI 理解成:

  • 产能极高
  • 速度极快
  • 但默认不可靠

你要做的是提供:

  • 上下文(让它知道现在是什么系统)
  • 约束(让它别乱来)
  • 验收(让它知道什么叫完成)
  • 反馈闭环(错了就沉淀成规则/文档/测试)

当这些工程条件具备以后,AI 的价值会非常稳定:它不只是写代码,而是帮你批量生成实现、批量探索方案、批量补齐测试、批量做迁移与重构的脏活累活。

——

如果你也有自己的 AI Coding 流程/踩坑经验,欢迎交流。我更感兴趣的是:哪些护栏真的能让团队长期稳定提效,而不是短期爽一把。

Share 

 Next post: 图片上传测试 

© 2026 Max

Theme Typography by Makito

Proudly published with Hexo