这篇文章,我们通过一个简单的例子来说明,平时在写需求的时候,我们可以在什么时候用AI来帮助我们写代码。
首先来看一下这个需求:系统中某个用户使用的时候出现了bug,通过手机建立临时任务报错,没有办法新增临时任务。报错界面如下图:
那么,当我们拿到这个信息时,第一步应该做什么?首先,我们需要确认他说话的真实性。万一他在捉弄我,那岂不是很搞笑?所以,我先在本地环境测试了一下,看看能不能新增临时任务,结果发现可以。然后,我又在测试环境中试了一下,结果还是可以新增临时任务。这时,我只能怀疑:难道这位同事在玩我?
但这不太可能啊,他没事干嘛捉弄我?于是,我决定让他给我看看他新增的临时任务单的内容,结果是这样的:
他没有勾选"知会干系人"的选项,所以无法提交这张临时任务单。
于是,我去查看了提交按钮调用的后端接口,发现如果你不选择"知会干系人",这个字段(userId)就会是false
。(没错,你没听错,"知会干系人"的字段名是userId,可能是当时外包开发时设定的)
那么,知会干系人的字段是false
就一定有问题吗?不一定。我查看了睿哥给我的日志,内容如下:
这个报错我看不懂,怎么办?问AI。
然后我去后端接口,看看这个userId在后端接口是怎么处理的,结果给我发现这个:
这个userId的值本应该是一个数组。如果你不填,应该默认为空数组"[]"才对,现在居然是false
,那肯定会报错。
所以,整体的思路应该是什么呢?我认为应该是修改userId的默认值,让它返回空数组"[]"而不是false
。
那么,应该如何修改前端代码呢?
-
找到提交任务的代码:定位到负责提交任务的前端代码部分,通常是在一个函数中处理表单数据。
-
检查userId的处理逻辑 :找到userId字段的赋值逻辑,确保它在未选择"知会干系人"时被赋值为空数组"[]"而不是
false
。 -
修改代码 :将userId的默认值从
false
改为"[]"。
全局搜索这个postDetail,结果是这样的:
一个个看,到底哪一个才是针对这个临时任务单的,结果找到了:
这样,就确保userId无论如何都是一个数组了。
我怎么知道这样改的?问AI的:
如果你读完整篇文章,你会发现,当我使用AI来帮助修改代码时,我其实已经很清楚代码出错的地方了。例如,在这个例子中,我知道userId == false
导致了错误,按理说这里应该是[]
才对。而且,我已经定位到了具体的代码位置,知道哪里有问题,但我不知道如何正确地修改。我知道需要修改,但不知道该怎么改。不过,我已经把最终想要实现的效果告诉了AI,这时AI就能发挥作用了。
你可以把这个过程比作踢足球:我已经突破了所有防守队员,只剩下临门一脚,而我不会射门。这时,让AI来帮我射门就好了。如果在比赛刚开始时,你直接让AI解决需求,它肯定会出错,因为它不了解具体情况。