2022 年的时候,我和一个同事做过一个项目,要改 Raft ,要动 etcd ,还要调整 K8s 的核心逻辑。我们两个人做了差不多一整年,最后真正写进仓库的代码不到 800 行。
那一年很慢。很多时间都花在推一致性,讨论异常场景,设计升级路径,确认历史数据怎么兼容。有时候一整天只改十几行代码。数量不多,但基本都是想清楚了才落下去。
以前一个开发者一天写 300 行代码算效率不错,写到 400 、500 行已经很拼。写代码有节奏,也有成本。很多问题在真正敲出来之前,已经在脑子里来回过了几遍。
现在节奏完全不同。AI 十分钟就能生成上千行代码,模块划分清晰,层次完整,接口齐全,异常处理也都写好了。很多时候只要把需求说清楚,代码很快就生成好了。
一开始确实觉得轻松。
后来慢慢发现,真是越来越累了,因为这些代码还是要有人读,要有人确认它和现有系统是不是贴合,要有人判断抽象是不是合适。虽然生成的速度上去了,但是我理解的节奏还是原来的节奏。
以前也是要 review 代码的。打开一个改动,从头看到尾,逻辑能在脑子里慢慢铺开。读完之后,大概知道这段代码放进系统里是什么样子。
现在一天新增几千行代码已经很常见。很多时候是,一轮对话下来就是上千行实现。改动动辄上千行,结构完整,分层清楚,看起来没有明显问题,但还是得一段段读过去。接口是不是多了一层,抽象是不是提前了,边界有没有被放大,这些都要自己确认。
很多实现从写法上挑不出毛病,但系统本身是有历史的。某些字段可能永远不会扩展,某些逻辑过几个月就会被删除,一些接口只是阶段性存在。模型不会知道这些背景,它给出的实现往往是完整的。是否贴合当前的环境,需要自己去判断。
测试也没有轻松多少。单元测试我也让 AI 一起生成,但自测还是得自己做。接口要自己调,参数要自己换着测,异常路径要一条条走,数据要自己造。现在很多时候前后端是一整套一起生成,页面、接口、数据结构都在一起,看起来很顺,只要中间有一个地方不对,就得从头走流程,把请求发出去,看返回结果,对着日志查调用链。整个链路还是要自己过一遍。
有时候会发现,一天下来真正写代码的时间其实不多,大部分时间都在读代码,在确认生成出来的实现有没有和现有结构冲突,有没有引入新的复杂度。刚看完一段,又出来一段新的;刚决定保留一种写法,下一轮生成又给了另一种实现。很多选择都不算错,只是需要自己一个个拿出来想一遍。这样的来回在一天里会发生很多次,思路一直被打断,很难长时间停在同一个问题上。
现在项目推进的越来越快,人也越来越累。
那种不是熬夜的累,也不是体力透支的累,是脑子一直没有停下来的那种消耗。晚上关掉电脑,脑子里还在过白天的逻辑;第二天坐下来,又是一堆还没完全消化的结构等着处理。思路被切得很碎,很少有完整的一段时间能沉进去。
以前写代码累,是因为问题难。现在更多是密度高。每天都在读,在判断,在确认,在来回切换。
这种状态持续久了,真的是超级累。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.