记一次bug修复过程
我的建议,究竟有谁会看,以我的位置,到底能推动到哪一层
可行性,可能性
问题:
用户的数据丢失了。以为是修改操作 有bug,但查看了后端接口和前端校验,都没有发现问题。
但是input数据没有日志【日志级别是debug】,不能自证清白。
并且一些没有办法轻易证明的猜测也有:是不是并发问题,一个insert操作操作刚完成,另一个请求上来了,把这个新insert的数据删除了。查了api网关,真找到有两个触发时间比较接近的两个请求 。。。
纠结中:这个简单的逻辑,还出问题,觉得很不爽,也不服气。
tips:这种情况下,可以使用这种话术----”我先看一下“ 如果直接说”这么接口这么简单,怎么可能有问题“ ---------------提出bug的人,可能觉得自己提出的判断或事实,被否定了。
解决办法:
是修改接口被误用,在别的场景中被调用了
背景: 需求描述
有一个 一个页面添加多个项的操作,
并且支持对多个项 进行 修改, 删除几个原有的,再新增几个
方案1:对已有id的更新,对没有id的进行insert ,还有对 删除项 进行删除-----这个貌似是最好的。略有复杂
删除,如果使用逻辑删除,则在 新增的记录 时,要不要和已有删除项的数据进行对比呢,如果已存在,则更新老的标识位,让其可见即可------ 问题:怎么判定是一条相同的记录呢。特别是字段比较多的场景
方案1:先删再增
是逻辑删,还是物理删除。
可以逻辑删,但要定时清表。对于操作频繁的表,数据量会越来越多
问题:
一个接口有变更,但接口没有按 单一职责 进行设计,调用散落在了不同的业务点。
思考--对一个表不同字段的修改,可能会用于不同的场景。 看到有不少地方是到处使用这个接口,这就造成 参数校验会散落在各个场景
一个对表的修改操作
记一次bug修复过程的更多相关文章
- 记一次bug查找经历
系统采用cell插件显示汇总数据,然后发现个公司数据显示不出来,接到这个任务开始查找bug. 通过需求了解并不知道其他公司什么情况,因为就这个公司有了反馈: 本来以为很容易找到点的,毕竟数据显示不出来 ...
- 记一个逻辑bug
1 从数据库中找出一个学生能选的毕业设计(毕设的select or not 字段表示本题目是否已经被选 此时就按照其值为n来查询) 2 用户选择某个毕设后,先更新毕设表(select ...
- 记Weblogic部署BUG(websocket)
将含有websocket的SSM项目部署在Weblogic上面,遇到websocket报错如下 java.lang.ClassCastException: org.springframework.se ...
- Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程
写在前面的话 <Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦> <Java开源博客My-Blog之docker容器组件化修改> ...
- 谁记录了mysql error log中的超长信息(记pt-stalk一个bug的定位过程)
[问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...
- 记一款bug管理系统(bugdone.cn)的开发过程(4) - 新增BugTalk功能
测试人员提出一个Bug,如果开发人员对Bug有疑义,会直接面对面讨论或者通过QQ等线上聊天工具讨论,但过后再去找讨论记录会很麻烦.因此BugDone提出一个全新的概念:将问题的讨论留在问题内.BugD ...
- 记一款bug管理系统(bugdone.cn)的开发过程(3) - 永久免费化
BugDone永久免费了! BugDone(bug管理工具)已经发布有一阵子了,自发布以来注册用户量.项目创建量稳步提升,并且得到了很多用户的好评. 在开发BugDone工具之前,我们团队也曾为找不到 ...
- 记一款bug管理系统(bugdone.cn)的开发过程(2) -如何做好登录界面
一. 做了一个大胆的决定,官网首页便是登录界面 BugDone,Bug管理工具的定位就是一款非常易用的工具,所以我们没有像其它平台那样进官网首页都是一些功能和业务的介绍. 我们觉得方便用户快速进入工作 ...
- 记一款bug管理系统(bugdone.cn)的开发过程(1) -- 为什么要开发一款bug开发系统
对于从事软件研发行业的同学来说bug管理系统肯定不陌生.本人03年左右开始正式成为一名码农,工作期间接触过若干bug管理系统,如JIRA等,不过都是自行部署在公司内网的. 几年过去了,现在已经是互联网 ...
随机推荐
- HttpWebRequest(System.Net)模拟HTTP发送POST
相关参考网上很多,但需要理解并转成自己的情况 public static string HttpWebRequestPost(string url, string param) { HttpWebRe ...
- Entity Framework异步查询和保存
EF6开始提供了通过async和await关键字实现异步查询和保存的支持(.net 4.5及更高版本).虽然不是所有的操作都能从异步中获益,但是耗时的操作.网络或IO密集型任务中,使用异步可以提升客户 ...
- Maximum file handles allowed by OS
Linux can open 1024 files concurrently by each process by default: http://m.blog.csdn.net/blog/keepe ...
- oracle数据库中将clob字段内容利用java提取出至文本文档中
代码段: 1.执行clob转String public static String ClobToString(Clob sc) throws SQLException, IOException { S ...
- Linux--多用户登录服务器端口抓包
以root身份登录1.新建用户组用命令groupadd test2.添加用户useradd -d /home/test/bei_1 -s /bin/sh -g test -m bei_1此命令新建了一 ...
- iOS开发之静态库.a 以及合并
静态库和动态库 静态库和动态库的存在形式静态库: .a 和 .framework 动态库: .dylib 和 .framework 静态库和动态库在使用上的区别静态库:链接时,静态库会被完整地复制到可 ...
- opencv学习笔记(七)---图像金字塔
图像金字塔指的是同一图像不同分辨率的子图的集合,有向下取样金字塔,向上取样金字塔,拉普拉斯金字塔....它是图像多尺度表达的一种,最主要的是用于图像的分割 向下取样金字塔指高分辨率图像向低分辨率图像的 ...
- openstack 使用pbr配置,setup.cfg的格式与含义
pbr - Python Build Reasonableness A library for managing setuptools packaging needs in a consistent ...
- jquery将json数据放入表格当中
数据: var datas = [{ name:"淘宝", url:"www.taobao.com", type:"购物网站" },{ na ...
- Nginx 常用命令总结
查看某个程序的进程:ps -aux | grep nginx (进程的名字:httpd-apahe进程 mysqld-mysql的进程 svn-svn的进程 php-fpm - PHP进程 ) 查看某 ...