现在的 AI 编程助手,打开对话框,随便抛个需求过去,几秒钟后,一段看似完美的、能跑通的代码就甩在了你脸上。你甚至不需要搞懂它底层调用了什么 API,直接 Copy + Paste,完事儿。
太快了,简直神清气爽!你觉得自己瞬间化身 10x 程序员。
但等一下……这段代码真的能长期维护吗?边界情况处理了吗?架构设计合理吗?
现实往往很骨感:功能看似跑通了,但包括你自己在内,根本没人清楚里面到底是怎么实现的。 随着后续新功能的加入,当初为了图快而糊弄的草率架构瞬间崩塌。
你突然发现:代码虽然写得快了,但你对系统的掌控力却彻底丧失了。
如何才能既享受 AI 带来的“疯狂移速”,又不失去对软件工程的控制力?
近日,资深Tech Lead工程师Maio在他的博客中开源了一套硬核的“AI 辅助开发工作流”。这套方法的核心逻辑非常反直觉:真正的核心工作,其实在写下第一行代码之前就已经结束了。
核心理念:用文字思考,而非用代码思考
在被 AI 彻底取代之前,我们需要认清一个事实:
AI 最擅长什么?是“实现”。AI 最不擅长什么?是搞清楚你“到底想要什么”。
AI 无法帮你补全那些你默认但没说出口的隐性假设,更无法在你的业务逻辑出错时扇你一巴掌让你清醒。
这些“擦屁股”和“拍板”的活儿,永远只能是你(人类工程师)的职责。
因此,Maio 提出了一个极其重要的范式转变:把每一个功能需求,都首先看作是一个“思考问题”,其次才是一个“代码实现问题”。 这套工作流的目的,就是强迫你把这些“思考”前置,并且利用 AI 来对你的思考过程进行“无情地审问和压力测试”,而不是直接跳过思考去写代码。
7步 AI 编程拆解法:慢,即是快
Maio 将整个开发流程拆解为 7 个结构化的步骤,并通过特定的 AI Prompt(他称之为 Skills)来辅助每个环节。
💡 Step 1:自由式规划 (Free-form plan)
这一步,禁绝 AI,全部由人类完成。 用大白话写一份文档,没有格式要求。描述你要解决的问题、初步设想的解决方案、已知的限制条件、以及不确定的地方。
核心目的:把脑子里的想法掏出来变成文字。这一步直接决定了后续所有环节的质量。计划模糊,后面 AI 吐出来的东西必定也是一团浆糊。
🕵️♂️ Step 2:用 AI 榨出 PRD (PRD via write-a-prd)
用 AI 来“审问”你的计划。 把第一步的草稿丢给 AI。AI 会先读取代码库了解现状,然后开始无情地盘问你计划中的每一个细节:
“用户未登录时这块怎么处理?”
“如果这个操作部分失败了,回滚机制是什么?”
“老用户依赖旧有逻辑,如何平滑过渡?”
这不是因为 AI 比你聪明,而是这种“强制问答”能榨出你最初设想中的致命漏洞。最终,AI 会产出一份极其详尽的 PRD(产品需求文档),包含明确的问题描述、解决方案、用户故事、API 契约等。所有东西都必须白纸黑字写清楚。
✂️ Step 3:将 PRD 拆解为 Issue (Issues via prd-to-issues)
把刚出炉的 PRD 丢给 AI,让它帮你拆分成具体的 Issue。
垂直切片原则:每一个 Issue 必须是一个完整的端到端功能(能贯穿UI、业务逻辑、数据库),绝不能是纯前端或纯后端的半成品。
分类管理:每个 Issue 会被明确标记为 AFK(Away From Keyboard,AI可以独立搞定直接Merge)或 HITL(Human In The Loop,必须人工介入决策,比如评审关键逻辑)。
📝 Step 4:把 Issue 细化为 Task
这是为了给 AI 下达“执行指令”而准备的。 把每个 Issue 拆成一次 AI 会话就能搞定的小任务(Task)。AI 会帮你规划好极度合理的执行顺序:先改 Schema,再写逻辑,写 API,最后做 UI,中间穿插测试。重点:Task 的描述是写给 AI 看的指令,而不是给人类的笔记。绝对不要包含具体的代码片段,只表达意图和最终状态。
🚀 Step 5:向代码交接
终于开始写代码了! 开启一个全新的 AI 会话,贴入刚才准备好的 Task 描述。为啥要开新会话? Maio 踩过的坑表明:如果让 AI 在一个超长的对话里一直写代码,它会开始“幻觉漂移”,基于它前面自己写的烂代码做决定,而不是基于你的任务要求。单次任务、干净的上下文,产出质量最高。
🔍 Step 6:AI 辅助代码审查
每次提 PR 之前,用 AI 进行 6 轮结构化审查。重点检查:操作顺序 (Operation ordering)。AI 经常能写出“看起来正确”的代码,但顺序可能是错的。比如:在提交数据库事务之前就发送了通知邮件、在记录审计日志之后才真正执行动作。人类肉眼看审查极难发现这种隐蔽 Bug,但 AI 互查却很犀利。
⚖️ Step 7:最终全盘审计
功能开发接近尾声,让 AI 跨越单个 PR 的局限,对整个功能实现进行“全局体检”。 它找的不是少了个分号这种小 Bug,而是系统性问题:模块间是否不一致?某个安全假设在整体应用中是否被打破?给出总体验收报告后,人类最后一次拍板:准许上线!
Maio 坦言,这套方法一点都不快,至少在前期准备(计划和写 PRD)阶段是相当耗时的。“直接开始写代码”的诱惑力永远在向你招手。
但这套方法的底层逻辑是:在写代码之前花 1 小时思考,永远比在写完之后花 10 小时排查连环 Bug 要便宜得多。
它也不能取代工程师的判断力。AI 在每一步都会给出看似合理的建议,但只有你才知道这些建议是否符合你们公司那祖传的、不可名状的复杂业务现实。
AI 负责加速生产,而审查(Review)与担责,永远是你的工作。
如果你对这套硬核的 AI 编程工作流感兴趣,Maio 也在他的 GitHub 上开源了他使用的相关 Prompt (Skills) 集合。
🔗 传送门:https://github.com/maiobarbero/my-ai-workflow
在人人都在追求“一句话生成应用”的狂热当下,这种退后一步、强迫自己“先动脑,再动手”的清醒思考,或许才是打工人在 AI 时代真正长久的生存之道。
夜雨聆风