需求8——通过一个小需求来体会AI如何帮助改bug

这篇文章,我们通过一个简单的例子来说明,平时在写需求的时候,我们可以在什么时候用AI来帮助我们写代码。

首先来看一下这个需求:系统中某个用户使用的时候出现了bug,通过手机建立临时任务报错,没有办法新增临时任务。报错界面如下图:

那么,当我们拿到这个信息时,第一步应该做什么?首先,我们需要确认他说话的真实性。万一他在捉弄我,那岂不是很搞笑?所以,我先在本地环境测试了一下,看看能不能新增临时任务,结果发现可以。然后,我又在测试环境中试了一下,结果还是可以新增临时任务。这时,我只能怀疑:难道这位同事在玩我?

但这不太可能啊,他没事干嘛捉弄我?于是,我决定让他给我看看他新增的临时任务单的内容,结果是这样的:

他没有勾选"知会干系人"的选项,所以无法提交这张临时任务单。

于是,我去查看了提交按钮调用的后端接口,发现如果你不选择"知会干系人",这个字段(userId)就会是false。(没错,你没听错,"知会干系人"的字段名是userId,可能是当时外包开发时设定的)

那么,知会干系人的字段是false就一定有问题吗?不一定。我查看了睿哥给我的日志,内容如下:

这个报错我看不懂,怎么办?问AI。

然后我去后端接口,看看这个userId在后端接口是怎么处理的,结果给我发现这个:

这个userId的值本应该是一个数组。如果你不填,应该默认为空数组"[]"才对,现在居然是false,那肯定会报错。

所以,整体的思路应该是什么呢?我认为应该是修改userId的默认值,让它返回空数组"[]"而不是false

那么,应该如何修改前端代码呢?

  1. 找到提交任务的代码:定位到负责提交任务的前端代码部分,通常是在一个函数中处理表单数据。

  2. 检查userId的处理逻辑 :找到userId字段的赋值逻辑,确保它在未选择"知会干系人"时被赋值为空数组"[]"而不是false

  3. 修改代码 :将userId的默认值从false改为"[]"。

全局搜索这个postDetail,结果是这样的:

一个个看,到底哪一个才是针对这个临时任务单的,结果找到了:

这样,就确保userId无论如何都是一个数组了。

我怎么知道这样改的?问AI的:

如果你读完整篇文章,你会发现,当我使用AI来帮助修改代码时,我其实已经很清楚代码出错的地方了。例如,在这个例子中,我知道userId == false导致了错误,按理说这里应该是[]才对。而且,我已经定位到了具体的代码位置,知道哪里有问题,但我不知道如何正确地修改。我知道需要修改,但不知道该怎么改。不过,我已经把最终想要实现的效果告诉了AI,这时AI就能发挥作用了。

你可以把这个过程比作踢足球:我已经突破了所有防守队员,只剩下临门一脚,而我不会射门。这时,让AI来帮我射门就好了。如果在比赛刚开始时,你直接让AI解决需求,它肯定会出错,因为它不了解具体情况。

相关推荐
zhangfeng1133几秒前
基于STRING数据库构建模型基因的PPI网络 基于GeneMANIA构建Hub基因的功能相似网络
开发语言·生物信息
小岛前端几秒前
大小仅 1KB!超级好用!计算无敌!
前端·javascript·开源
无限进步_4 分钟前
【C语言】计算两个整数二进制表示中不同位的个数
c语言·开发语言
没有鸡汤吃不下饭12 分钟前
Git将某个分支合并到开发(dev)、测试(test)后突然想撤销该分支的功能,怎么处理?
前端·git·github
文心快码BaiduComate13 分钟前
Comate分饰多角:全栈开发一个Python学习网站
前端·后端·python
DKPT20 分钟前
JVM如何管理直接内存?
java·笔记·学习
90后的晨仔20 分钟前
Vue 插槽(Slots)全面解析与实战指南
前端·vue.js
我是日安23 分钟前
从零到一打造 Vue3 响应式系统 Day 20 - Reactive:reactive 极端案例
前端·vue.js
Slice_cy25 分钟前
📚 uniapp版本懒加载 + 不定高虚拟列表实现
前端
golang学习记25 分钟前
从0死磕全栈之Next.js API 路由实战:不用后端,前端也能写接口!
前端