# 让AI辅助编程更高效、更优雅:我的“双层工作流”秘籍 ## 开场白:别慌,这真是人写的! 先声明一下,这篇文章的主体内容是本人亲自码出来的,后面让AI帮忙润色了几句——毕竟我的手写体比医生的还难认。🤷 本次聊的不是“甩手掌柜型”AI编程(你只负责想法,AI全包干),而是“AI辅助型”——你掌控节奏,AI帮你提速。适用于复杂代码库、注重风格和架构的场景,不是那种一锤子买卖式的快速原型。 如果你连AI写的代码都看不懂,那本文恐怕帮不了你,建议先补补基础😊。 ## 正片开始 下面给大家分享下,我跟Cursor这类AI编程助手长期相处的经验总结——不敢说普适,但绝对血泪教训换来的“土办法”。 为了让你一看就懂,我们举个离谱点的例子:重构咖啡店点单系统,结果莫名其妙还掺了区块链,光一个拿铁下单都能上链。别笑,这年头什么奇葩需求都能遇到。 ## 曾经的“踩坑史” 刚开始我跟大多数人一样——把需求描述一丢,按下回车,幻想AI能一键解决。很快发现,这套路有点“自作聪明反被聪明误”。 比如我说“修复拿铁下单流程”,AI信誓旦旦地重构了错误的支付模块——因为它只看到零零散散的代码片段,对全局毫无概念。 后来我才知道,像Cursor这种工具,为了节省计算资源(说白了也是为大家省钱),它们会用搜索和grep等功能,只抓取部分相关代码。AI看得少,脑补得多,风格和结构就容易跑偏。 这就像让你只读小说的几页,就得猜完整剧情——主线大致能蒙出来,但人物关系、细节风格就全靠想象了。 结果嘛,AI写出来的代码,能跑,但跟你的代码风格八竿子打不着。 ## 第一次“开窍”:强制AI整本读 我的第一个突破,是用自己的“Model Context Protocol(MCP)”——让AI不是只看片段,而是把关键文件全读一遍。通过精心设计提示词,逼着AI用我定制的工具读全文件,而不是只用Cursor自带的搜索。 吃过的亏:AI总是误改我们的“customer_caffeine_desperation_index”(顾客咖啡因绝望指数)算法,因为它根本没看到这个算法在三个文件间怎么串的。 但关键的代价是:**整本读会暴饮暴食你的上下文窗口**(context window)。 这就跟你是打个电话聊几句,还是翻人家整本日记一样。日记信息量大,但你脑容量就那么点,读多了容易脑子糊。 我的做法是:只让AI完整读真正重要的文件,次要的用搜索。这样一来,既保证质量,又不至于把上下文撑爆。 ## 聊天长度悖论 第二个大坑:聊天记录越长,AI越迷糊。我以前喜欢跟AI“长谈”,结果Cursor常常委婉建议我“重开一局,效果更佳”。 但每次新开聊天,响应是快了,前面辛苦积累的项目上下文又全丢了。 这简直是个哲学悖论:要么AI啥都记着但脑袋糊;要么清醒得像刚睡醒,但啥都不记得。 我一开始傻傻地把个人偏好记在便签软件里,隔一会儿粘贴一下。但真正的转折点,是我摸索出了一套“双层工作流”。 ## “双层工作流”——因为真的有两层 这套体系很简单:你有一个代码库,有个明确的目标(无论新功能、修Bug还是重构)。 ### 第一层:规划阶段(大本营对话) 这一步就是建立你的“黄金对话”,成为整个项目的“事实根据地”。 **步骤1:打好地基** 我先把需求讲清楚,再挑出必须完整阅读的核心文件,简要描述它们在项目中的角色。别怕麻烦,这步选文件越准,后面AI表现越好。这份提示词会反复用,绝对值得打磨。 强制AI把这些文件完整读一遍。然后让它去发现其他相关文件,帮你制订一份详细的行动方案——这一步只谈理解和规划,绝不让它动手改代码。务必明说:“只读不改,先理解再说。” **步骤2:方案迭代** 在临时对话里,让AI帮你优化方案。比如说:“一起完善这个方案,你先提建议,我指出问题,你有疑问就问。” 一直磨到AI不再提出有建设性的问题。问题变得无聊时,就是停下来的信号。 **步骤3:生成最终方案文档** 等AI和你的思路完全对齐后,让它输出一份详细的markdown计划。我常用的标准是:“假如有个新工程师只拿到这份文档,他能不能快速上手、了解代码结构,然后按你的思路开展工作?” **步骤4:回归主线** 回到你建立的大本营对话,把这个精炼方案交给AI,让它结合这份计划,探索代码库。 恭喜你,第一层已就绪。正所谓“万事俱备,只欠东风”——东风是什么,问ChatGPT吧,典故比我讲得清楚。 ### 举例:咖啡店重构大计 **用户:** ```python """ 任务:重构咖啡店点单系统,去掉拿铁订单中的区块链集成,同时保留顾客紧急度评分系统。 需完整阅读的核心文件: - order_processor.py(主下单逻辑,负责神秘的区块链调用) - urgency_calculator.py(计算顾客咖啡因急迫度) - payment_handler.py(常规支付与区块链支付分界点) - customer_model.py(定义紧急度相关属性) 只读不改——先把这些文件看完,帮我搞清楚拿铁-区块链的关联。然后找出其他相关文件,做个详细重构方案。 """ ``` **AI助手:**(通读所有文件,发现区块链逻辑也影响卡布奇诺,找到还有3个文件需处理,梳理出系统架构全貌……) ### 第二层:具体实现阶段 现在才是真正的“敲代码”时刻。得益于第一层的扎实基础,AI对你的项目了如指掌。可以直接告诉它下一步做什么,或者让它生成下一个任务计划(省点token,每一分都不浪费),然后把计划粘到新的实现对话里。 **第二层核心原则:** **迭代推进,步步为营** 始终强调“迭代式”合作,每次只让AI改一个文件,改完就停,等你确认再继续。这样能第一时间发现偏差,防止一出错就“满盘皆输”。 **用清晰的称呼** 习惯用“the user”指自己,别用“I”,避免AI自我认知混乱(别问为什么,问就是AI有时候分不清你我他)。 **高级玩法:有策略地清理旧代码** 对代码库很熟时,建议让AI在写新功能时顺手删掉旧代码(哪怕短暂影响别的功能),避免“代码遗迹”越积越多。如果你追求兼容性,也可以,只要在docstring里清楚标注哪些函数已废弃,不然AI还会傻乎乎继续调用。 ### 实现阶段举例 **用户:** ```python """ 这是我们第一层对话整理出来的 refined plan:@current_task_plan.md 现在执行第1步:在order_processor.py里去掉拿铁订单的区块链集成。 请迭代推进——只修改这个文件,做完停下,等用户确认再动payment handler。用户要逐步审核,避免误伤生产环境的咖啡队列。 """ ``` **AI助手:**(修改order_processor.py,去除了拿铁区块链操作,切换成标准支付流程……) **常用“定心丸”提示词:** - “只改一个文件,做完停” - “每步都请确认后再继续” - “the user要审核每次变更” ## 上下文循环的魔法 这套体系最大威力在于:你不用让聊天记录越滚越长,而是每做一步实现,就回到“黄金第一层”对话。 操作方法非常简单: 每完成一步实现(一般一文件一小步,代码结构清晰时尤佳),**不要在同一个实现对话里继续**。而是回到第一层大本营对话,说:“第1步搞定了,文件更新如下,帮忙规划第2步。” 这就像有个“总控室”维持全局上下文,每个小任务都是短平快的分会场,但所有分会场都共享那份厚重的项目理解。 所以我称之为“双层工作流”:第一层管全局记忆,第二层管具体执行。 ### 举例:回到大本营,开启新一轮 **用户:** ```python """ 咖啡店重构第1步完成,order_processor.py已更新——拿铁订单的区块链调用已移除,切换为标准支付。 目前状态:拿铁下单功能正常,但发现urgency_calculator.py里仍有区块链相关逻辑影响“高峰咖啡恐慌指数”计算。 按计划,下一步该聚焦哪里? """ ``` **AI助手:**(检查更新文件,理清进度,建议第2步应专注清理急迫度计算中的区块链残留,同时保留核心评分逻辑……) **妙处在于:** 你的大本营对话一直保持全局上下文,还能随时吸收最新进展。 ## 何时更新你的“总控计划” 通常做两三步实现后,项目变化太大,原计划已不适用。这时就让AI帮你更新那份markdown总计划:剔除已完成的任务(彻底删干净),把新发现的需求和变化补进去,按当前系统架构重新排序。 一旦计划更新,回到第一层对话,把新计划发过去即可。由于所有文件都是引用最新的,因此AI天然会用最新上下文继续工作。 “第一层”对话无需知道前面发生过什么,就能无缝衔接。 ### 举例:计划演化 **用户:** ```python """ 咖啡店重构已发生重大变化,区块链集成已移除,但紧急评分系统比预期复杂——现在还引入了“咖啡师压力指数”和“排队焦虑系数”。 请帮我更新总计划markdown文件: - 已完成的任务请彻底清除 - 新增咖啡师压力集成相关需求 - 按最新架构重新梳理剩余任务 """ ``` **AI助手:**(更新@current_task_plan.md,清爽重组,反映最新全貌……) ## 完整工作流一览 整个流程非常丝滑: 1. **先做计划** → 用它建立“大本营”对话(Level 1) 2. **分步实现** → 每步新开实现对话(Level 2) 3. **回到大本营** → 汇报进度、获取下一步 4. **循环往复** → 直到功能/修复/重构完成 ## 为什么这个体系靠谱 你始终只维护两层对话:一层负责“全局大脑”,一层专注“小步快跑”。 不让实现层对话拖太长,不丢全局上下文。就像有个既能记住全项目历史、又能专注当前任务的编程伙伴——既不“记忆超载”,又不“短时失忆”。 结果就是:代码质量更高,偏差更少,AI助手也没那么让人头疼了。 希望这个体系能帮你把AI助手用得更顺手,写代码像喝咖啡一样提神!