对AI结对编程的反思

AI擅长有清晰边界的编码任务,

比如定义一个函数或对象方法,

它几乎100%能写出满意的代码,

除非输入到输出存在多条路径,

亦即有多种处理方案,

此时AI理不清我的偏好,

实现过程容易偏离需求。

让AI生成更大颗粒度代码时,

情况就会逐渐变得复杂。

类是最小的程序结构单元,

是软件架构的底层支撑,

它的职责边界的划分,

它有哪些属性与方法,

是一种模式的归纳,

若这种模式对AI来说是常识,

则AI通常能给出较为满意的输出,

当这种模式是特定领域的,

例如一个垂直业务场景的模式,

AI的输出通常不尽我意,

我需要与之多轮对话,

沟通成本在增加,

AI效率会被逐渐侵蚀。

让AI生成多个类,

或者让它根据已有类生成新类,

这涉及到软件架构的理解,

架构设计是分层抽象思维活动,

是立体且网状的,

它闪现着领域特有的思维。

越高层次的抽象,

对应着越高阶的领域认知,

虽然更接近问题的本源,

但对AI和人提出了更高挑战,

这不仅是AI的伤心地,

也是我的伤心地。

它的能力发辉在这里会失控,

让我和它的沟通成本剧增。

这半个月以来,

一个具体神经网络训练上给我的折腾,

让我不满足AI生成的就事论事的代码,

而是有了"冲动"的想法,

写出一个能支撑这类神经网络训练的框架,

这个想法又激活了另一个想法,

写一个能完整支撑监督学习的训练框架,

这个想法进一步激发了更大的"野心",

写一个能支持全部学习范式的通用训练框架。

以为凭借自己的经验,

加上AI的辅助,

一切应该是水到渠成,

确实也写出了初级版本,

甚至还对接了现有的问题,

但是每一次重新审视这个框架,

每一次会发现新的问题,

发现其根基存在不稳。

不断的与AI对话,

试图修补不足,

结果不是牵一发动全身,

就是顾此失彼,

这种反复折腾极耗精力。

到头来,

忽然间发现,

那个原始具体问题还在那里,

而我却陷入多层抽象的陷阱中,

好不容易才从中抽离出来。

我对AI结对编程,

终于"刻骨铭心"了一次,

折磨给了我深刻的教训。

软件开发不仅仅是编码,

更是一种抽象思维活动。

抽象思维活动是分层的,

具体问题只需偏向底层的抽象,

从具体问题到一般问题,

是更高层级的抽象,

需要有更高阶的认识。

抽象思维层次越低,

AI就越能胜任,

反之,

就越容易出错失控。

如果我把抽象活动,

限制在当前具体任务上,

通常可获得较为精确的AI方案,

但有可能是头痛医头。

如果希望得到更一般的方案,

最好是从当前感受到的痛点出发,

局部的进行抽象思考,

抽象的层次也只局限于,

比当前的抽象层次最多高一层。

层次过多,覆盖面太广,

与AI的沟通成本会急剧上升,

抵消甚至超过AI效率成本。

只着眼于眼前的方案固然不足,

但为应对想象中的未来问题,

而试图构造出一种普适方案,

更会陷入偏离当前的风险中。

------后记

这段反思,

从实践中来,

让我掉了不少头发,

到实践中去,

希望头发又长出来。

相关推荐
irislinAmelia7 小时前
缺陷检测AI关键点在哪
人工智能·嵌入式硬件·1024程序员节
Ai-_Man7 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
安托智造7 小时前
MBD:从二维图纸到三维模型的制造革命(下)
大数据·人工智能·制造·mbd
火山引擎开发者社区7 小时前
VeOps 深度调查:让 AI 排障从“能用”走向“可靠”
人工智能
梓豪csd7 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
王中阳Go7 小时前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
武天旭7 小时前
AI安全--AI大模型的隐私保护与法律法规
人工智能·安全
Solange__8 小时前
影视预演怎么用AI生成3D场景?从分镜、Blockout到镜头交付的完整流程
人工智能·游戏·3d·ai·自然语言处理·aigc·游戏策划
冬奇Lab8 小时前
一次 Skill 评测的复盘:我推翻了一份现成的模型选型结论,然后自己造了个评测平台
人工智能·llm·agent
不脱发的程序猿9 小时前
纳指ETF量化策略
数据库·人工智能·1024程序员节