开场白:别慌,这真是人写的!
先声明一下,这篇文章的主体内容是本人亲自码出来的,后面让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吧,典故比我讲得清楚。
举例:咖啡店重构大计
用户:
|
|
AI助手:(通读所有文件,发现区块链逻辑也影响卡布奇诺,找到还有3个文件需处理,梳理出系统架构全貌……)
第二层:具体实现阶段
现在才是真正的“敲代码”时刻。得益于第一层的扎实基础,AI对你的项目了如指掌。可以直接告诉它下一步做什么,或者让它生成下一个任务计划(省点token,每一分都不浪费),然后把计划粘到新的实现对话里。
第二层核心原则:
迭代推进,步步为营
始终强调“迭代式”合作,每次只让AI改一个文件,改完就停,等你确认再继续。这样能第一时间发现偏差,防止一出错就“满盘皆输”。
用清晰的称呼
习惯用“the user”指自己,别用“I”,避免AI自我认知混乱(别问为什么,问就是AI有时候分不清你我他)。
高级玩法:有策略地清理旧代码
对代码库很熟时,建议让AI在写新功能时顺手删掉旧代码(哪怕短暂影响别的功能),避免“代码遗迹”越积越多。如果你追求兼容性,也可以,只要在docstring里清楚标注哪些函数已废弃,不然AI还会傻乎乎继续调用。
实现阶段举例
用户:
|
|
AI助手:(修改order_processor.py,去除了拿铁区块链操作,切换成标准支付流程……)
常用“定心丸”提示词:
- “只改一个文件,做完停”
- “每步都请确认后再继续”
- “the user要审核每次变更”
上下文循环的魔法
这套体系最大威力在于:你不用让聊天记录越滚越长,而是每做一步实现,就回到“黄金第一层”对话。
操作方法非常简单:
每完成一步实现(一般一文件一小步,代码结构清晰时尤佳),不要在同一个实现对话里继续。而是回到第一层大本营对话,说:“第1步搞定了,文件更新如下,帮忙规划第2步。”
这就像有个“总控室”维持全局上下文,每个小任务都是短平快的分会场,但所有分会场都共享那份厚重的项目理解。
所以我称之为“双层工作流”:第一层管全局记忆,第二层管具体执行。
举例:回到大本营,开启新一轮
用户:
|
|
AI助手:(检查更新文件,理清进度,建议第2步应专注清理急迫度计算中的区块链残留,同时保留核心评分逻辑……)
妙处在于:
你的大本营对话一直保持全局上下文,还能随时吸收最新进展。
何时更新你的“总控计划”
通常做两三步实现后,项目变化太大,原计划已不适用。这时就让AI帮你更新那份markdown总计划:剔除已完成的任务(彻底删干净),把新发现的需求和变化补进去,按当前系统架构重新排序。
一旦计划更新,回到第一层对话,把新计划发过去即可。由于所有文件都是引用最新的,因此AI天然会用最新上下文继续工作。
“第一层”对话无需知道前面发生过什么,就能无缝衔接。
举例:计划演化
用户:
|
|
AI助手:(更新@current_task_plan.md,清爽重组,反映最新全貌……)
完整工作流一览
整个流程非常丝滑:
- 先做计划 → 用它建立“大本营”对话(Level 1)
- 分步实现 → 每步新开实现对话(Level 2)
- 回到大本营 → 汇报进度、获取下一步
- 循环往复 → 直到功能/修复/重构完成
为什么这个体系靠谱
你始终只维护两层对话:一层负责“全局大脑”,一层专注“小步快跑”。
不让实现层对话拖太长,不丢全局上下文。就像有个既能记住全项目历史、又能专注当前任务的编程伙伴——既不“记忆超载”,又不“短时失忆”。
结果就是:代码质量更高,偏差更少,AI助手也没那么让人头疼了。
希望这个体系能帮你把AI助手用得更顺手,写代码像喝咖啡一样提神!