当我用ChatGPT摸了一上午鱼,结果......

经常有人问我,ChatGPT出来这么久了,你怎么不写点教程(割点韭菜)呢?其实,从它一出来,我就关注了,也在平时的工作中进行了使用,正好最近在处理一个埋点的问题,就拿ChatGPT来进行下演示吧,看我怎么用ChatGPT来摸鱼,解决我们平时遇到的问题。

问题是这样的,相信很多朋友也遇到过,那就是RecyclerView的Item曝光埋点问题。最开始对埋点数据要求不高的时候,埋点代码,都是直接写在onBindViewHolder�里的,这是最简单的方式,但是问题在于RecyclerView的预加载会创建一些页面不可见的缓存Item,这就导致了曝光数据不准,所以,当产品突然要求更加精准的曝光埋点时,这种方式就显得手足无措了。

这个问题的解决,国际上大致有两种方案。

一种是基于Adapter,在滚动停止时,计算当前firstVisible和lastVisible,并与上次的记录进行对比,从而计算出曝光的Item,这种方式也是简单有效,但是弊端在于统计粒度比较粗,如果以后产品要按照「Item展示大于x%才算曝光」,这样就无法实现了。

那么另一种方案,就是计算当前View的已经绘制的Rect和原始Rect的对比,从而可以推断当前View的曝光状态,类似airbnb的epoxy,就是这种方案github.com/airbnb/epox…,这种方式的定制程度就比较高了,但是稍微复杂一点,需要处理好监听的管理,否则会有一些性能压力。

ok,现在压力给到ChatGPT,让我们来看看它是如何解决这个问题的,下面的这些截图,就是我和ChatGPT的完整对话过程,首先,我们把问题抛给ChatGPT,当然,最开始我们需要给它一个比较宽泛的问题,然后再一步步引导它将答案具化。 image.png 看来ChatGPT还是信手拈来。接下来将问题具化到我们的RecyclerView。 image.png image.png 由于是使用Kotlin,所以我的思路是尽量不改原来的代码,所以,拓展函数来一个? image.png image.png image.png image.png 这时候已经有点意思了。 image.png image.png ChatGPT果然是老实人,我说锁屏你就真的只管锁屏? image.png image.png 有点扯了,算了,先实现方案,后面再处理。 image.png image.png 这个我还真没想到,之前对这种方案了解不对,还真是小刀划腚子。 image.png image.png 不得不说,ChatGPT还是很听劝的,也很有礼貌,对于我的指责,能够好好反省。 image.png image.png 但当我把它的代码copy到项目里面去运行,才发现了一堆新的问题。 image.png image.png image.png image.png 不得不说,你创造API的能力是一流的。 image.png image.png 态度挺好,但是,这错的是不是有点多啊,能不能一次改完? image.png image.png image.png image.png 终于改完了,我们现在在试试变更需求,看它能不能理解。 image.png 不错,再加点难度。 image.png image.png image.png 这时候,ChatGPT就突然变蠢了,改了好几次都不能完成这个需求。 image.png image.png image.png 越改bug越多。 image.png image.png image.png image.png image.png image.png 到这个时候,我已经失去耐心了,这个bug来来回回改了这么多次,依然有问题,也许是跟我对话时间太长,变蠢了?

总而言之,我花了一个上午的时间想利用ChatGPT来摸鱼,但最后发现竟然比我自己做还累??我不仅要检查它的思路是否正确,还得给它解bug?

其实这个问题并不复杂,我们在问它之前,已经有一些思路了,但是最终ChatGPT并没有生成完整能符合需求的代码,不过这也不能全怪ChatGPT,它毕竟只是一个出道两年的练习生而已。

虽然忙了一上午没摸成鱼,但是我们也进一步了解了ChatGPT,不可否认,它的确有用,但还不足以能威胁到我的饭碗。那么我们能利用ChatGPT摸什么鱼吗,当然是可以的。

首先,你可以一定程度上替代搜索引擎,虽然有些问题它有些瞎扯淡,但是比起百度来说,我觉得还是更胜一筹的,很多简单的问题,基本就可以放弃百度了,直接ChatGPT就好了。

其次,你可以借助ChatGPT来给你提供思路,虽然它的代码不一定能完全满足你的需求,但它的思路,基本还是符合国际惯例的,有时候甚至还能给你一些惊喜。

最后,ChatGPT是需要调教的,别指望一下子就能给你很完善的回答,你需要一步步引导它,但对于像我这个level的程序员来说,这就好像在面试一个出道两年的练习生,有点惊喜,但不多,更多的是无奈,回答不到点子上。

当我用ChatGPT摸了一上午鱼,结果......我浪费了一上午!!!

欢迎大家关注我的公众号——【群英传】,专注于「Android」「Flutter」「Kotlin」 我的语雀知识库——www.yuque.com/xuyisheng

Je suppose que tu aimes

Origine juejin.im/post/7251968564956381239
conseillé
Classement