之前我在我在这里发帖子,有人说我写的文章太 AI 了。那我今天想来分享一下我从 2023 年开始用的一个编程的范式
我写这一篇文章呢,本身呢,就不害怕别人嘲笑我,也不害怕别人笑话我。如果你觉得我说的是个笑话的话,那你就笑一笑。如果你想要在评论区里面发表一些刻薄的言论的话,我也不会生气,我都会听取
叠甲的部分先叠完了。最近的时候有一个故事,就是说我当时在和一个朋友讨论一个平台新增的一个功能。然后呢,他跟我说,你用的是 CodeX 吗?还是 Claude Code ?我说我是用的 GPT 网页版。他和我说,网页版你是手写吗?这个年代了,你还不用这个编程 Code Agent ?我跟他说,我没有手写啊,都是 AI 在写啊。他觉得很疑惑,他说你怎么只靠对话?就能够写代码?这年代还有人在用网页版的这个 GPT 啊
我当时没有跟他解释,但是我比他更快更准的做完这个功能。在测试的时候呢,我对这个需求卡的比他更准,做的也比他更好更快。这个时候呢,我开始去思考,然后我去问了一下我社区里面的朋友,发现他们都是在用这个 Code X ,或者说 Claude Code 。我就觉得纳闷呢,我用这个网页版不也一样很快吗?然后我去问他们,我发现了一个问题,就是他们已经失去了对自己项目的一个架构掌握力了
这个项目从 21 年开始到 23 年开放,一直都是我自己手写代码。到了 23 年以后,我开始引入到这个 GPT 网页版。一开始的时候呢,我会去去问他们这个函数的输出有哪里不对,然后让他去解决我一些代码不会的问题。到后面呢,我开始去把我每一次出问题的具体的这个代码段发给 GPT ,然后让他去做手术刀的改进。到后来我才知道,这个能力很多开发者已经没有了。当我想要去改一个问题的时候,首先我是知道这一部分有问题,我能够把这一部分从它的最底层 SQL 到 DAU ,再到这个具体的这个函数,再到这个函数所关联的其他函数,我能够把它抽出来,抽成一条。然后我把它在我的这个备忘录里面先打成一个上下文。在上下文里面呢,我会写提示词,我会说,这里我觉得有什么问题,那里我觉得可能有什么问题,这里我们要观测什么,那里我们要观测什么,然后把它发给 GPT ,结合我的很多的日志,组成一条这样的上下文。最后让 GPT 做一个手术刀的改动,往往这个改动最后是特别准,特别很准快的。但是我没有想到过,其实我在做的这个事情,其实是现在的 Harness 在做的事情。但是呢,我一直没有用 Harness ,我一直坚信我自己就是这个人肉 Harness
这样的人肉 Harness 有什么样的前提?有什么样的好处?首先,一个项目一定要是这个开发者,他自己对这个架构能够达到具体到某一个函数,具体到某一行代码的一个精细度的时候。当他对这个项目的了解程度达到这种程度的时候,他才能够自己去当这个 Harness 。因为当收到一条反馈的时候,一个用户反馈。因为我是独立应用开发者,我能够直接知道这个用户他在说什么位置,他在讲什么问题。然后我去把自己这个问题抽象到和他有关的这一行代码,然后把我的这个想法直接告诉这个 AI 的时候,其实我就在充当这个 Harness 。这个 Harness 比这个 AI 自己的 Harness 有更高的可控度。每当 AI 给我这个手术刀代码的时候。我会让 AI 去对齐全部的这个需要对齐的地方。AI 会给我一个 1 万字、2 万字、3 万字,甚至更长的一个每一个边界的对齐。但是呢,我有能力把它每一个边界都阅读完毕,在我的脑海里面形成一个,哦,AI 是这么理解我这一段代码的,但是这个理解与我的这个期望有具体哪一点的不同,我给它指出。然后我再次让它给我一个手术刀的改进,这个手术刀改进是一个可搜索可定位的。最后,它给我一个非常非常小的一个代码段,我把它改进去,它依然在我的脑海里面留存。这是我开发一念成仙这个有 100 多万行代码的项目的一个一直以来的一个开发方式
今天我在这里讲我的开发方式的时候,我想可能在 AI 时代进入到这个开发的人,可能已经不能理解了。可能在 AI 时代前进入这个开发,但是后期把开发交给 AI 的人,也不能够理解了。但是呢,我用这个开发的方式,开发了一个有 60 万用户持续的收入,还有百万级别的代码以上的项目。直到今天,这个百万行的代码依然在我的脑海里面,每一个细节都清清楚楚,每一个架构都清清楚楚。AI 只是我的工具,直到现在,我也没有使用 Code X ,我也没有使用 Claude Code ,我依然保持每个月 160 多块钱的 GPT 网页版的订阅。但是我发现我和其他使用网页版订阅的人相比。我使用到的这个网页版仿佛不是一个网页版,因为我作为 Harness 参与了网页版。这篇文章我不是为了吹牛,我今天也喝了一点小酒,但是我说的这些呢,都是事实。如果大家对于我这种用网页版开发,每一次都根据自己的这个架构的经验,去把这一次要做的,具体到手术刀一个齿轮级别的改动发给他,让他去做手术刀的改动。他的每一个改动,他的每一个提交的上下文都是自己组合,每一个提交过来的代码都是自己审阅。这一种开发流程,有意义的或者有建议的用户,你可以去质疑我
我想我可能会受到这样的质疑,这个年代了,你用 Code X ,一个下午可以做几百倍你的这个工作,你这样有什么意义?你是不是在闭门造车?或者在为了手搓而手搓,者,你自认为你一个有多年架构经验,或者说你追求一个架构洁癖,你希望对你的这个项目有完整的这个掌控权的这个能力。你确定你的这个架构掌控权的能力能够比这个未来的这个 Fibre 五,甚至更强的能力、更强的这个模型更强吗?你是不是在自己打自己的脸
我很好奇这方面的这个评论