导读
让 AI 改一处代码,最常出现的麻烦是它顺手改多了。样式一起调了,数据结构一起动了,最后连原本没问题的地方也要重新检查一遍。
还有更麻烦的一种。要改的东西其实在别的地方,它要么硬塞进原来的位置,要么闷头把范围扩大,两种情况都不好收场。
下面这段整块发给你的 AI,让它先把这次改动的边界定下来,再动手。
把这段话整段发给你的 AI
复制下面整块,原样发给它:
左右滑动查看完整代码
我要改一处代码,你先不要动手。请你先把这次改动的边界写清楚,我确认之后再改。
我要改的是:(一句话说清要解决的问题,以及现在是什么现象)
请按下面四档,判断这次改动属于哪一档,并写清依据。
第一档:只动一个文件里的局部逻辑。
第二档:要动同一个模块里的多个文件,但对外部行为没有影响。
第三档:要改数据结构、存储格式或配置文件。
第四档:要改对外的接口、页面地址、收费或权限。
定档之后再做三件事。
一、列出你预计要改的文件,逐个写一句为什么。
二、按档位给出验证方式。第一档跑什么,第三档怎么证明老数据还能用。
三、写清这次不要改什么,至少包括无关页面、依赖版本、以及我没提到的任何对外行为。
如果你检查之后发现要改的东西在约定范围之外,停下来告诉我:为什么必须扩大、扩大了会影响什么。不要为了把改动塞进原范围,把代码放到不合适的位置。
交付时不要只说“已完成”。按四行给我:改了哪些文件、每处改了什么、跑了哪些检查及结果、哪部分没有验证。它把边界和证据格式交回来,你看过再让它动手。
需要你亲手做的三件事
- 定下“不要改什么”。它列的禁止项是按常识猜的。哪块不能碰,只有你知道:付款流程、登录、别人正在改的文件。
- 第三档和第四档要你点头。改动到数据结构或对外行为,成本不只是多跑一次测试,是老数据、老链接、老流程都要能继续用。
- 交付后自己走一遍最常用的路径。它跑的是它自己写的测试,你用的是你平时那套操作。
附:四档边界怎么分
- 第一档,一个文件。改的是显示顺序、文案、一个判断条件这类。跑这个文件相关的检查,再打开页面看一眼。
- 第二档,一个模块。几个文件要一起改,外部看不到变化。多确认一件事:有没有别的模块在依赖你要改的内部结构。
- 第三档,数据结构。数据库字段、存储格式、配置文件都算。这一档要老数据仍然读得出来,还要有回退办法:改坏了怎么退回去。
- 第四档,对外的东西。接口、页面地址、收费、权限。这一档要通知相关的人,还得留一段旧版本仍可用的过渡时间。
档位的作用是定下来之后守住它。真正的风险是它一边说“就改一处”,一边把数据库动了。
附:它说改完了,怎么核
- 先看它交的那四行,跟它开工前列的“预计要改的文件”逐条对。多出来的文件,逐条问为什么。
- 再看有没有你没提过的对外变化。心里没底,就打开自己的站点或后台看一遍。
- 会用 git 的话,看一遍改动清单和 diff。不会也至少把改之前能用的功能重新点一遍。
- 结果不对,把失败现象补进原来那段任务单里,针对这一处继续查。别顺手追加别的活。