我越来越觉得,AI(人工智能)编程像外卖员闯进城中村:车不慢,腿也不慢,真正耗时间的,是在密密麻麻的楼缝里找 7 栋 2 单元 402。AI 编程先慢在找代码,不慢在写代码。colbymchenry 做的 codegraph(把代码仓库画成关系图的工具),值钱不在多给 AI 一支笔,而在先给它一张路网图。
大家老爱盯着另一头:模型会不会写,聪不聪明,会不会“理解业务”。我觉得这都说晚了。今天的大模型,短板不是落笔,是认路。函数像一句话,代码库像一座城;会造句,不等于熟悉巷子。把模型做大,只是给路痴换一双更快的鞋。
写,是便宜的;找,才是贵的。
周三晚上 11 点 40,做电商后台的工程师被退款工单叫醒。他把报错贴给 AI,AI 三分钟写出一段补丁:状态回滚、异常重试、日志齐全,像个模范生。第二天早会,退款状态对了,库存却还锁着,优惠券也没退回去。问题不在那 30 行补丁,而在 AI 没找到那条藏在异步任务里的补偿链。它写得飞快,只是快错了地方。
周二下午 3 点,小团队要在订单列表上加一个“待开票”的黄点。AI 改了页面,补了字段,连样式都配好了。演示时所有人都点头。到了测试环境,移动端没有黄点,打印页多出一个黄色方块,导出的表格还多了一列废字。后来才发现,这个状态在三个目录里各有一套翻译:一套给页面看,一套给打印用,一套给导出脚本吃。AI 找到了最近的那份代码,却没找到真正说了算的那份代码。
凌晨 1 点 12,运维让人清掉一个“看起来早就没人用”的配置开关。AI 全仓库搜了一遍,只看到两处引用,删得干净利落。第二天 8 点 20,财务发现日报没生成。那开关不在正文里活着,在字符串拼接、脚本参数和老旧配置表里借尸还魂。文本搜索像在黑屋里拿手电找门,照到哪算哪;关系图才像把整栋楼的管线图摊在桌上,哪根线一剪,全楼停水,一眼就知道。
这三件事,表面上是三次故障,骨子里是一件事:找入口,找正本,找波及面。
找入口,是先知道问题从哪一层流进来,不是看到哪儿亮就扑哪儿。
找正本,是知道谁才是真正拍板的那份逻辑,不是离你最近的那份副本。
找波及面,是知道你一动这块砖,哪堵墙会裂,不是只盯着眼前这行字。
代码库对 AI 的难度,不在语法,在地理。
没有结构视野的 AI,写得越快,偏得越远。
真正拖慢机器的,不是键盘,是地图。
这也是我看 codegraph 最顺眼的地方。它承认代码不是一摞文本,而是一张关系网:谁调谁,谁依赖谁,谁只是影子,谁才是源头。过去很多 AI 编程工具,像让一个实习生拿着关键词在旧档案馆里乱翻;翻到纸就很兴奋,翻不到就开始编。codegraph 干的不是替他写作文,而是先把档案馆的目录、索引、借阅关系、暗门位置画出来。先知道文件之间是什么亲戚,再谈让 AI 下笔如飞,这才像工程判断,不像舞台魔术。
很多人看 AI 编程,像看短视频里的切菜师傅:刀光一闪,十秒出活,于是以为厨房的问题已经解决。其实软件团队更像一座住了十年的老楼,电线是后补的,水管是绕过承重墙偷接的,门牌号还改过三次。你能不能在这楼里找到总闸,比你会不会拧螺丝重要得多。不会找总闸的人,拿着电钻也只是扩大事故半径。
我甚至觉得,这事不只是在说 AI,也是在说我们怎么误解“编程”。外行总把编程想成一种写作,仿佛程序员的价值在于敲出多少行。其实真正值钱的,是在一堆祖传目录、临时补丁、团队暗语里,知道该去哪里下手,知道哪些地方碰一下会塌,知道哪些文件虽然脏,但现在动不得。大型仓库不是一本书,是一座村庄;每个目录都有自己的方言、辈分和禁忌。写,是手艺;找,是判断。前者像书法,后者像考古。书法写得再漂亮,挖错了地方,整座墓都塌。
所以我对 codegraph 的判断很直白:它重要,不是因为它让 AI 更像一个会炫技的程序员,而是因为它终于把编程里最脏、最难、最少上镜的那部分端上了台面。AI 编程真正的瓶颈,不是它不会写那 30 行,而是它不知道那 30 行该写在什么地方、旁边挨着谁、写完会惊动哪几户邻居。
谁先解决“找代码”,谁才算真在解决 AI 编程。剩下那些一口气生成几百行的表演,多半只是让迷路的人跑得更快。