西西河

主题:ChatAI 使用初体验(0) -- shuyong

共:💬19 🌺144 新:
全看分页树展 · 主题 跟帖
家园 ChatAI 使用初体验(5)

用CHAT AI辅助开发软件,其实还有一个特性,结果是好坏参半。CHAT AI读取分析各类技术文档就是一瞬间的事情,于是CHAT AI针对实现某个功能有可能会提出一种在全局下最优化的实现,但是受现实的制约,其结果很难说。

对于一个代码库,如果它的技术文档有1000页,我是懒得看的。为了实现某个功能,一般是找厂商给的DEMO代码,或者是找已经成功运行的项目代码,在别人的基础上修修改改,就完成了自己的任务。并且大多数工程师都是这么干的。于是时间久了,对于某个功能,用哪几个代码库实现,怎么实现,都有了固定套路。而对于大型代码库来说,有可能作者辛辛苦苦实现一百多个接口,而用户常用的接口可能就固定十几个,活跃度远低于20%。

对于CHAT AI,它没有偷懒的“感觉”,没有畏难的“情绪”,它可以根据技术文档和参考代码,按照概率和排列组合生成代码。有时候看它生成的代码,就会有感觉,原来这个接口还可以这样用,原来这个功能还可以用那个接口这样实现。但是,造成上述传统套路的现象也是有原因的,而且原因和结果是相互影响的。

首先,我们人的精力是有限的,能关注的细节也是很少的。于是最开始那些工程师所选择的方案就会被一代代继承下来,哪怕后来出现了更好的解决方案,勇于尝试的人也不会很多。但是,正是因为大家都用类似的固定套路,也就说明这种套路是可用的,没有问题的。而在其它新的领域,因为尝试的人少,常常会隐藏有很多问题。比如说,很多代码库里的错误处理模块是错误最多的地方,因为错误很少发生,这些代码就很少被用到,而且一旦出现错误,要死就大家一起死,错误处理模块的表现也很少被关注,所以这块代码很容易隐藏有问题。

还有一种可能,就是文档描述的和代码运行结果不一致。这有可能是接口实现有问题,也有可能是作者表述和我们的理解有偏差。这又回到上面所讲的,用得多了,大家熟知了就达成了共识,用得少的,要么是没实现、要么是实现有问题、要么是理解有问题。于是时间久了,就造成这种现象:被大家常用的接口基本上没有问题,并且其结果也如大家所熟知的那样。如果要用不常用的接口或不常用的参数,其结果就不好说了。

而CHAT AI如果根据技术文档生成代码,如果调用的接口或参数因为不常用而产生问题,那CHAT AI就很容易进入盲点,于是反反复复用排列组合试验各种方案,却始终解决不了问题。CHAT AI的问题就是它无比自信,并且“相信”自己所理解的技术文档是正确的,于是反复地试验,也许最终不出错了,但是要实现的功能也没有了。那碰到类似问题,我们人类工程师是怎么解决的?我们人类工程师首先会承认自己的失败:“我不行了,我搞不定,请外援吧。”请教原厂工程师,他们有可能说:“哦,这个接口原来是有问题的,我们刚刚修订好。我给你一个补丁吧。”请教有过经验的工程师,他们有可能说:“你这方案有问题的,我试过不行。我给你一个绕开这个问题的代码吧。”此外还有些特别牛的人不服输,继续往下追,一直找到问题的根源,最终解决了隐藏在代码库里的问题。

所以指望CHAT AI一劳永逸地解决编程问题,一举替换掉码农,短时间内是不可能的。

通宝推:唐家山,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河