ChatGPT 给你的代码真的敢直接往线上扔吗?

梦康 2023-04-01 22:36:34 400

跑路笔记很久没更新了,这个话题想跟大家聊聊了,还是自己的一些感悟分享。现在信息爆炸的时代,有时候早上在车上,我也会刷各种公众号,有时候会看到很多奇技淫巧,惊叹还能这么用(不一定贬义)。现在更方便了,一个问题卡壳,直接问 ChatGPT ,复制粘贴往项目里一拷贝,项目运行的还挺好,非常 nice 直接上线,平常每天加班加点,自从有了这个小助手,下班是真的早了。
不知道你是否考虑这里是否有坑?

这样的代码是可控的吗?
过几天自己会不会因为新上的代码提桶跑路?
举个例子,假如 Java 作为后端,代码逻辑复杂,响应速度慢,有一些可以逻辑可以并行,又有一些需要串行,下面是 GPT4 的答复,回答的很全。

输入图片说明

结合实际使用场景,可以继续追问,让他根据自己的场景直接给出一段生产环境可用的代码。

输入图片说明

输入图片说明

思考下
这样就完了么,因为我经常看到很多公众号也是这样写的,是给出了解决方案,但是线上运行一段时间之后,可能会遇到很多问题,比如出现

  1. 上面异步线程中跑出异常了怎么追踪?
  2. 假如上面继续优化,使用了自定义线程池,线程池的忙碌情况怎么样?
  3. 异步线程池满了,登陆服务器,没有现场怎么办?
    另一个例子

假如有些数据想放在本地缓存中,我们可能问题 ChatGPT 要 @Cacheable 接入本地缓存方案,它的回答也是非常的 nice 运行没问题。同样类似的问题:

  1. 本地缓存直接使用内存,比较昂贵,线上系统使用了多少?
  2. 有没有可能写错了代码,生成了很多无效缓存?
  3. 缓存达到阈值,怎么保存现场?
    仔细想下

ChatGPT 是非常的智能,是一个非常棒的助手,但是我们给他输入是非常局限性的,很容易出现饮鸩止渴的情况,大家千万不能放松警惕。怎么解决这个问题呢?我觉得不仅仅是解决 ChatGPT 的问题,也是我们从任何地方获取解决方案之后要想的问题,怎么做到闭环:

  1. 如何追踪
  2. 如何监控
  3. 如何设置阈值
  4. 如何过载保护
  5. 出问题了,如何保留现场