需求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解决需求,它肯定会出错,因为它不了解具体情况。

相关推荐
水云桐程序员3 小时前
从零开发软件的步骤,软件开发从零到完成应该怎么做?
笔记·学习·软件构建·个人开发
笃行3503 小时前
集中式与分布式,KingbaseES 的四种形态共用一套内核
前端
David猪大卫3 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
陈随易4 小时前
Vue 编译器换掉 source map,快了三四成
前端·后端·程序员
叼烟扛炮4 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
xiaoye-duck5 小时前
《C++ 项目:手写大模型接入 SDK》Gemini接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
ZhengEnCi6 小时前
12 种高级 UI 交互效果及对应 AI 提示词:从按压回弹到底部抽屉的物理感教学
前端·css·交互设计
nice_lcj5208 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河668 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
IT_陈寒8 小时前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端