Kuga 那篇帖子我是昨晚读完的,一个急诊医生用手机一个月上线三个网站。这背景估计不少人在别处刷到过了,我看标题的时候也没太当回事。真正让我停下来记一笔的,是评论区第 36 条。
Michael Murphy 在那里建议:先把完整计划写进一个 .md 文件,让 AI 反复改进这份计划,直到它自己都提不出新问题,再让它一次性把代码写出来。作者回了一句很实在的话——他每个网站都留了一份记录所有决策的摘要文档,每开新对话就喂给 AI,但他此前没让 AI 反复打磨计划直到提不出问题。
差的那一步,就是我今天想拆开看看的东西。
作者自己也总结过一条:先达成共识再让 AI 写代码,否则容易反复重做。这句话单独看像正确的废话,但把它跟评论区那条建议拼在一起,就是一个能照着走的流程。下面是我自己试出来的顺序。
1. 先别让它写代码,把目标讲清楚
这一步最容易偷懒。我之前的做法是「帮我做一个 XX 页面,要有 A、B、C」,然后看它吐出来什么再改。Kuga 的做法是先描述目标,跟 AI 讨论到自己想法变清晰为止,再让它生成。听着多了一道工序,省下的其实是后面的返工。
我现在的做法是把这个讨论过程落成一个文件:
site-plan.md
目标:让某个人收到一条公开的感谢留言,并拿到一张可保存的卡片
输入:收件人名字、留言正文、可选头像
输出:卡片图 + 一个可分享的链接
不做:注册、登录、付费
已知约束:手写部署,不上框架
最后两行是我自己加的,原文没有。写下来是因为我发现,AI 最常出问题的地方不是做错,而是顺手多做了你没要求的事——突然给你接了个数据库,或者默认你要上某个框架。提前把这些钉死,它反而老实。
2. 让它挑这份计划的毛病,不是你挑
这步我以前一直跳过。Michael Murphy 那条的原意是让 AI 反复改进计划,直到它不再发现问题;Kuga 也承认自己没这么干过。我试了两轮,确实有用:第一轮它会补漏,比如提醒你「卡片要能离线用的话,图片得内联或者存本地,不能只给一个 URL」;第二轮它就开始原地打转,翻来覆去讲同一件事。
打转就是可以动手的信号。💡 小技巧:把这句当作对话的开场白,比直接问「这样写行不行」更容易拿到有用的答案——
这是 site-plan.md,先别写代码,读完告诉我这份计划里
有哪些地方你自己没把握。
3. 计划冻结了再生成,之后每次新对话都带着它
Kuga 每做一个网站都留一份记录所有决策的摘要文档,新开对话时喂给 AI。这一步我觉得是整套流程里最容易被省、又最不该省的。上下文一断,AI 就开始按自己默认的审美乱补,你会觉得它「变笨了」,其实是你没给它那份文件。
这条跟安全也接得上。作者在评论里说,有一次把装着所有密钥的文件放进了公开目录,是做正式安全审查的时候才发现的。这个坑和前面的流程是同一件事——如果「密钥文件不能进公开目录」这条在共识阶段就写进计划文档,后面根本轮不到审查来兜底。计划冻结 → 生成代码 → 新对话带文件,这条链上少一环,都得靠事后补救。
4. 在真手机上测,不是在浏览器里缩一下窗口
Kuga 踩的两个坑都出在这儿。留言墙上点按卡片,有时会被识别成拖动墙面——这个问题用鼠标根本不会暴露,因为鼠标没有「手指按下去时那种小幅抖动」这回事。他的解法是给手指设一个比鼠标更大的拖动阈值:
// 手指比鼠标更容易抖,阈值要给得宽一些
const dragThreshold = isTouch ? TOUCH_PX : MOUSE_PX;
星图那边的捏合缩放一开始有跳动,最后是重写了触摸处理才解决。
这类问题我也吃过苦头。之前记的另一篇笔记里写过,一个在桌面浏览器里反复确认过没问题的下拉组件,到手机上,手指往下滑的时候页面跟着一起滚,两个事件在抢。所以「在真机上测」不是一句稳妥的套话,它是一个具体动作,会把整整一类问题筛出来——触屏事件、阈值、防抖,桌面调试器里全都看不见。
还有一点得说:作者在回复里提到,AI 有时会自信地给出错误信息,声称问题已经修复,结果手机测试并没通过。所以这一步和上一步之间,得留一个你自己的核对动作,不能只信它那句「已修复」。他打的比方我很喜欢——像用药前反复核对安瓿标签。
5. 文件太大就拆
他还提到一个页面涨到了 200 KB,手机上打开和编辑都费劲,后来把数千颗恒星的数据跟代码分开,降到 22 KB:
改之前:stars.html 200 KB
改之后:stars.html 22 KB
stars-data.json
这其实也是计划阶段就该定的事。数据是数据,逻辑是逻辑,一开始分开放,后面就不用返工。我把它写进流程里,但心里清楚这条属于「知道该这么干,还是经常忘」的那一类,跟前面四步不是一个难度。
划重点:第一,「先共识后写代码」不是一句正确的废话,把它落成一份 .md 计划文件,写清目标、输入输出、不做什么、已知约束,才算真落地;第二,计划写完让 AI 挑毛病,挑到它开始重复自己为止,再放它去写代码,之后每开一个新对话都带上这份文件;第三,验证要在真机和真环境里做,AI 说「已修复」不算数。
这篇就记到这里。你可以下一轮跟 AI 开新对话的时候,先只丢给它一份计划文件,看它提的问题是不是比上次具体——我不确定这一步对每个人都立竿见影,但至少比直接说「帮我写个网站」靠谱得多。
