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

news2024/10/9 7:32:15

这篇文章,我们通过一个简单的例子来说明,平时在写需求的时候,我们可以在什么时候用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解决需求,它肯定会出错,因为它不了解具体情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2198436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练;

河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练; 河道垃圾与水污染检测数据集(无人机视角) 项目概述 本数据集是一个专门用…

Web自动化Demo-Kotlin+Selenium

1.新建工程 打开Aqua,点击New Project选中Kotlin,配置如下: 然后在build.gradle.kts文件中添加依赖 plugins {kotlin("jvm") version "1.9.23" }group "org.example" version "1.0-SNAPSHOT"rep…

Ubuntu-24.10无法安装Sunlogin-15.2的解决方案

目录 1. 报错信息2. 解决方案3. dpkg-deb命令帮助4. References 1. 报错信息 albertqeeZBG7W:/opt/albertqee/Downloads$ ls | egrep -i sun SunloginClient_11.0.1.44968_amd64.deb SunloginClient_15.2.0.63062_amd64.deb SunloginClient_15.2.0.63064_amd64.deb albertqeeZ…

python——Echarts现交互式动态可视化

数据展示 20192018201720162015201420132012北京5817.15785.91765430.78755081.264723.864027.16093661.10973314.934天津2410.252106.23972310.35522723.52667.112390.35182079.07161760.0201河北3742.673513.86433233.83322849.872649.182446.61662295.62032084.2825山西234…

泛微流程隐藏按钮

隐藏右键菜单的按钮 控制台输入 mobx.toJS(WfForm.getGlobalStore().rightMenu.rightMenus) 获取相对应 type在js中进行隐藏 ecodeSDK.overwritePropsFnQueueMapSet(WeaRightMenu,{ //复写组件名隐藏菜单fn:(newProps)>{ //newProps代表组件参数newProps.datas newProps.…

使用Spring Security实现用户-权限-资源的精细化控制

文章目录 一、基于权限的请求控制二、加载用户权限信息三、自定义异常处理四、注册自定义异常处理器五、总结 在开发Web应用时,权限管理是一个不可忽视的部分。最近在项目中,我使用了Spring Security来实现用户、权限、资源之间的精细化控制。这里我想分…

开放式耳机哪个牌子好?开放式耳机怎么选?蓝牙耳机推荐2024

2024年值得推荐的开放式耳机还是有很多的,不过大部分人还是不知道开放式耳机怎么选,因为总不能跟风选择,看别人推荐哪款好就选择哪款,这样子盲目跟风,只会浪费钱包,而且买了一堆完全不适合自己的开放式耳机…

通信工程学习:什么是DIP数据集成点

DIP:数据集成点 DIP数据集成点(Data Integration Point),简称DIP,是物联网技术(IoT)和机器到机器(M2M)通信中的一个重要组成部分。DIP在数据集成和传输过程中扮演着关键角…

【MYSQL】mysql 约束---默认约束(default)和零填充约束(zerofill)

1、默认约束概念 Mysql默认值约束用来指定某列的默认值。 所谓的默认约束是当我们创建表时,比如有些字段,我们没有给值,那么可以给其一个默认值,如果该字段是被默认约束了,且给该字段值了,则给的是什么值…

gaussdb hccdp认证模拟题(判断)

1.在事务ACID特性中,原子性指的是事务必须始终保持系统处于一致的状态。(1 分) 错。 2.某IT公司在开发软件时,需要使用GaussDB数据库,因此需要实现软件和数据的链接,而DBeaver是一个通用的数据库管理工具和 SQL 客户端&#xff…

代码随想录day22:回溯part4

491.递增子序列 class Solution {List<List<Integer>> result new ArrayList<>();List<Integer> path new ArrayList<>();public List<List<Integer>> findSubsequences(int[] nums) {backTracking(nums, 0);return result;}priv…

室内物品墙体脱落分割系统源码&数据集分享

室内物品墙体脱落分割系统源码&#xff06;数据集分享 [yolov8-seg-dyhead-DCNV3&#xff06;yolov8-seg-AFPN-P345等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI G…

计组与体系软题1-数据表示与校验码

一、数的编码方式 题1-0的表示 题2-补码的补码原码 1. 这道题涉及到数的编码范围和进制转换2. 题3-采用补码的目的 二、编码范围 题1-补码的表示范围(-2^(n-1)~2 ^(n-1)-1) n是字长/位数&#xff0c;2^7128&#xff0c;范围为-128~127题2-原码范围&#xff08;-2^&#xff0…

GNURadio 平台实现DSB信号调制解调实验

目录 一、DSB 信号调制解调原理 二、搭建的GRC流图 一、DSB 信号调制解调原理 1.调制原理 由于AM 信号载波信号占用很大的能量&#xff0c;但是不携带信息&#xff0c;不传递信息&#xff0c;直接去掉载波信号就得到了DSB信号。可见 DSB 信号与 AM 信号的不同之处是&#xff…

来了,使用YOLOv11目标检测教程

来了&#xff0c;使用YOLOv11目标检测教程 概述 YOLO11 在 2024 年 9 月 27 日的 YOLO Vision 2024 活动中宣布&#xff1a;https://www.youtube.com/watch?vrfI5vOo3-_A。 YOLO11 是 Ultralytics YOLO 系列的最新版本&#xff0c;结合了尖端的准确性、速度和效率&#xff…

【CPP】类与多态

目录 15 类与多态15.1 如何理解多态15.2 动态绑定15.3 虚函数及重写的生效方式15.4 动态多态的生效方式15.5 坑15.6 协变15.7 析构函数的重写15.8 CPP11新增关键字15.8.1 override15.8.2 final 15.8 纯虚函数与抽象类15.9 虚函数表指针和虚函数表15.9.1 粗看虚函数表指针和虚函…

List子接口

1.特点&#xff1a;有序&#xff0c;有下标&#xff0c;元素可以重复 2.方法&#xff1a;包含Collection中的所有方法&#xff0c;还包括自己的独有的方法&#xff08;API中查找&#xff09; 还有ListIterator&#xff08;迭代器&#xff09;&#xff0c;功能更强大。 包含更多…

一篇文章快速认识YOLO11 | 关键改进点 | 安装使用 | 模型训练和推理

前言 本文分享YOLO11的关键改进点、性能对比、安装使用、模型训练和推理等内容。 YOLO11 是 Ultralytics 最新的实时目标检测器&#xff0c;凭借更高的精度、速度和效率重新定义了可能性。 除了传统的目标检测外&#xff0c;YOLO11 还支持目标跟踪、实例分割、姿态估计、OBB…

ACM介绍

ACM介绍 1. ACM简介 ACM&#xff08;Association for Computing Machinery&#xff0c;国际计算机学会&#xff09;是世界上最大的计算机领域专业性学术组织&#xff0c;汇集了国际计算机领域教育家、研究人员、工业界人士及学生。ACM致力于提高在中国的活动的规格与影响力&a…

【微服务】—SpringBoot入门

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记仓库&#x1f449;https://github.com/A-BigTree/tree-learning-notes 个人主页&#x1f449;https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 文章目录 1 SpringBoot快速入门1.1 SpringBoot简介1.1.1 简介1.1.2…