手把手教AI学习

Words
1016
Reading
5 min
Listen
Play
9M

很多人用AI,大多数时候是把AI当作工具,当作牛马,让AI加班加点干活,我就比较奇葩了,不但经常把AI搞得崩溃不说,还要教AI干活。

48f388ba7ad8a4b1357c43d9bed7f24e.png

事情要从我打算重构我的见证人列表开始,HIVE上的小伙伴大概都知道我开发了一个见证人列表功能,对于它的强大我自己颇引以为傲。

虽然HIVE社区里有各式各样的见证人列表,但是我发现检查投票以及估算收益的功能,我的见证人列表是蝎子粑粑——独(毒)一份!

但是说到界面嘛,额,还是不说也罢,我自己都觉得难看,大概真的好看不到哪里去。嗯,看起来大概是这个样子。
e5c8fc834e0679d72ce55d693a9d5cb1.png

我一直想将其重构一下,奈何屎山代码改起来实在是太难了。😳

于是我让AI帮我写了一个见证人列表,AI确实给力,帮我弄了出来,就是让它该点啥时不时地发飙,把代码改成一团糟根本跑不起来还修复不了。

要不就是被我搞崩溃了,彻底疯了,给我发成千上万句吐槽:

e3b9d32ff622065d6438cc72de213ed2.png

不过磕磕绊绊,一点点打磨,总算有点我想要的样子了,这其中的心酸根本难以述尽,算了,不吐槽了。

话说我的见证人列表中我最引以为傲的一项功能就是收益估算,直接通过链上数据大致估算对应见证人的出块奖励情况,这样作为见证人看着才有动力不是?

经过我仔细调教,总算交会了AI如何估算这个收益,也能正常且正确的显示了,但我突然想起来,如果某个TOP20见证人离线,这个功能还能准确嘛?

我让AI帮我确认一下,它直接给我如下答案:

cb34dfce8a225e0039cec1adb5d28229.png

并信誓旦旦地给我贴一大堆代码,证明它是正确的,比如

const isActive = w.signing_key !== NULL_KEY;
const isTop20 = w.rank && w.rank <= 20;

又比如:

let earningsDisplay = <span className="text-slate-300 text-base">-</span>;
if (isActive && inflation) {
    // ... 执行 TOP 20 或 Timeshare 的收益计算公式 ...
}

说了一大堆,并给我总结:

56a59788c9c7a2621532017ea268466f.png

它这么信誓旦旦,反而让我觉得不靠谱,我不由地想起一句话:

我信你个鬼,你个糟老头子坏得很!

1a72f038266ee33bf1c7fa684a21e80a.png

于是又手把手交给它TOP20见证人替补的逻辑,这次它怂了,不再信誓旦旦了:

经过对 components/WitnessList.tsx 的深度逻辑审计,我确认目前的代码中确实没有考虑 Rank 20 以内见证人离线导致的递补逻辑。

又变成了知错就改的听话小朋友,又开始给我噗噗噗丢大把的代码,比如:

263b50da508c15c0f05d4919b4fe0d43.png

然后给了我一个方案,我又丢给它一个我的方案,它还给我来了个对比:

15854e2d045a07e928715f06103874ba.png

这是要证明不比我弱呗?况且好像对我的方案理解有点偏差呀?不过还是让它按我的方案去改,嗯,就是这么独裁!AI也得听我的!

改完以后,看起来貌似正确,大概没有哪个TOP20见证人会为了配合我测试离线一下吧,哈哈哈哈。

85e6c355bbe8376f866cb25796edca30.png

软件还在精细打磨中,目前还未发布,敬请期待呀(但愿AI别再发飙帮我把代码彻底弄崩溃,那样我就崩溃了,我都崩溃N多次啦)

对了,说个趣事,我给软件起名叫HIVE Pulse,结果昨晚hdev@hdev 发布了一款同名应用,没想到这也能撞衫,我还在纠结改成啥名好呢?话说要是我早点贴这几个图就好了(那他们会不会纠结改名的事情呢 ?哈哈哈)

手把手教AI学习 | Ecency