工作烦恼与吐槽

news2024/11/10 13:39:48

       先说一下我自己吧,到目前为止已经工作5年了,目前在一家规模可以的公司中任职,我来这家公司之前是做qt桌面应用的,为了以后不被淘汰,我觉得应该深挖底层

所以到了这家公司维护qt底层库,我觉得这是一个不错的工作,因为我可以远离无聊的业务代码和业务需求,转而去学习一下底层库代码

       不过现在我遇到了问题,公司的应用是用qt开发的,但是出了崩溃、闪退问题,他们看看堆栈,发现是崩溃在Qt库里面就直接把bug转过来了,刚开始我还有精力看一下

但是推给我的问题越来越多,问题堆积的越来越多,导致我很难静下心去研究每个问题

        更难受的是,有的问题排查到最后其实就是业务代码的问题,我两三天找到问题的根源,和应用同步一下,人家半天就改完了,我也只算参与排查,不能算是修改

除了崩溃、闪退这种极端的问题,还有一些功能性的问题,应用实现的功能有问题,也会转到我这里,这都极大的浪费了我的精力

我自己最近复盘了一下,得出了以下结论

            1. 我的这个岗位可能就是干这个活的,我以前所在的公司都没有维护qt库的岗位,
               这家公司有这个岗位,那么默认应用只管使用qt,qt有问题就找我,我也应该解决(有点PUA自己了哈)

            2. 应用那边就是偷懒,不愿意尽力去排查,毕竟每个人都愿意省事

            3. 我现在也没有很好的方法去判断应用推给我的问题是不是qt底层库的问题(我大概率认为不是qt库的问题,qt不能这么烂)
            我没有明确的证据也不好推回去

分析完之后,我发现我自己也就能把第三点完善一下,公司和其他同事,我也不能去要求什么,所以我梳理了一个排查步骤

崩溃、闪退问题排查

1. 在确认是qt库导致的问题之前,不接受指派的bug

2. 让应用负责人提供崩溃堆栈信息,这里要注意有的人为了省事直接就用gdb看release版本的堆栈,这样的堆栈信息什么都没有,不会展现应用上的细节,这也是很多人一看堆栈,没看到应用的崩溃就给底层的原因,所以要和应用负责人确认是不是按照以下步骤获取的崩溃堆栈信息

            采集堆栈信息的步骤:
                    
            (1) 安装应用对应的debug包和qt对应版本的debug包
            (2) 再次复现一次问题
            (3) 使用gdb查看新生成的堆栈信息

一些非主产品线上会找不到应用对应的debug包,这时候需要在复现问题的电脑上搭建开发环境去编译debug版本

我目前处理的两个崩溃问题,最后都是在安装debug包后,从崩溃堆栈上看到崩溃位置是在应用业务代码上,这是目前是最容易划分崩溃责任的方式了

3. 应用负责人按照正确的步骤提供堆栈信息,如果堆栈信息中有明确的qt代码崩溃位置,则接收bug,反之,qt框架可以协助排查,视情况决定是否接受指派bug

4. 在排查问题时,要拉测试和应用负责人进群沟通,避免做传话筒

5. 在要完全投入去排查问题前,要确认如下信息

        (1) 通过堆栈信息已经无法看出崩溃的具体位置
        (2) 确认测试负责人 确认应用负责人
        (3) a.确认电脑硬件 
                b.确认操作系统版本(build id) 
                c.确认应用版本 
                d.确认qt版本
                
        (4) 确认问题的现象,测试提供问题现象视频
        (5) 确认问题是否必现,确认问题复现的手法,测试应提供高复现率的操作手法

6. 问题排查阻塞,无法继续进行的,要及时向上汇报



 

功能性问题排查

1. 在确认是qt功能问题之前,不接受指派的bug

2. 应用负责人应提供一份能复现功能问题的最小demo,这样就不用梳理应用的业务逻辑

3. 应用版本不变,更换qt版本比较

        例如,目前的版本是qt0.3版本有问题,那么可以将qt更换到qt0.2版本再测试,如果还有功能问题
        大概率就是qt的问题了

总结

        虽然我自己梳理了一些排查步骤,不过还是很难落地。本质上还是没有一个能快速划分问题责任的方式,有些问题看起来是qt问题而且也不好推给应用,我也不想去为了一个问题归属扯皮(可能再干烦了就会去扯皮了)

        不知道我以上的思考是否正确,请看到这篇文章的大佬提供点建议,谢谢

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

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

相关文章

React18入门教程

React介绍 React由Meta公司开发,是一个用于 构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式 不错的性能 相较于其它前端框架的优势 丰富的生态 跨平台支持 React的市场情况 全球最流行,大厂必备 开发环境…

EmguCV学习笔记 C# 12.2 WeChatQRCode

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

Vue.js的前端框架有哪些?

Vue.js 是一款流行的前端 JavaScript 框架,用于构建单页面应用(SPA)。除了 Vue.js 本身,还有许多基于 Vue.js 的前端框架和 UI 库,它们提供了更多的功能和组件,以便开发者能够快速构建应用程序。以下是一些…

【图像压缩与重构】基于BP神经网络

课题名称:基于BP神经网络的图像压缩与重构(带GUI) 相关资料: 1. 代码注释 2.BP神经网络原理文档资料 3.图像压缩原理文档资料 程序实例截图:

eclipse git 不小心点了igore,文件如何加到git中去。

1、创建了文件,或者利用三方工具,或者用mybatis plus生成了文件以后,我们需要右键文件,然后加入到git中。 右键有问号的java文件 -- Team -- Add to Index ,然后变成个号就可以了。 2、不小心,点了一下Ign…

Mac 上哪个剪切板增强工具比较好用? 好用剪切板工具推荐

在日常文字编辑中,我们经常需要重复使用复制的内容。然而,新内容一旦复制,旧内容就会被覆盖。因此,选择一款易用高效的剪贴板工具成为了许多人的需求。本文整理了一些适用于 macOS 系统的优秀剪贴板增强工具,欢迎大家下…

华为OD机试 - 构成指定长度字符串的个数(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

想高效开发,也许可以试试文件系统。。。

众所周知,4G-Cat.1模组的文件系统与数据传输速度、存储效率,以及数据安全性等有非常重要的关系,在应用开发中也非常重要。 今天我们来尝试Air201的实用示例——文件系统的使用 Air201文件系统的使用 合宙Air201资产定位模组——是一个集成超…

密集行人数据集 CrowdHumanvoc和yolo两种格式,yolo可以直接使用train val test已经划分好有yolov8训练200轮模型

密集行人数据集 CrowdHuman voc和yolo两种格式,yolo可以直接使用 train val test已经划分好 有yolov8训练200轮模型。 CrowdHuman 密集行人检测数据集 数据集描述 CrowdHuman数据集是一个专为密集行人检测设计的数据集,旨在解决行人密集场景下的检测挑…

【自动驾驶】控制算法(九)深度解析车辆纵向控制 | 从算法基础到 Carsim 仿真实践

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

【C语言】常见的C语言概念

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 什么是C语言2.C语言的历史3. 编译器的选择VS20223.1 编译和链接3.2 编译器的对比3.3 VS2022的优缺点 4.VS项目和源文件、头文件介绍5. 第一个C语言程序6. main函数7. printf和库函数8. 关键字介绍9. 字符和ASCII编…

【machine learning-十-梯度下降-学习率】

学习率 学习率不同的学习率 在梯度下降算法中,学习率的选择很重要,不恰当的选择,甚至可能导致损失发散,而非收敛,下面就看一下学习率的影响。 学习率 学习率是下图中的红框圈出来的部分, 学习率是模型的超…

Python 复制Excel 中的行、列、单元格

在Excel中,复制行、列和单元格是日常工作中经常需要进行的操作,它可以帮助你快速调整数据布局、复制数据模板或进行数据的批量处理。 本文将详细介绍如何使用Python将Excel中的行、列、或单元格范围复制到指定位置。 所需Python库 要使用Python操作Exc…

今天不写项目,聊聊后端面试吧

首先感谢大家之前的观看呀~兄弟们~ 这边把我去过几家公司面试的题目都写一下哈,像我大二下,就是前两个月7-9进了公司进行后端实习,哎.....反正就是学学学..话不多说~ 1.Frist 1.HashMap实现原理 HashMap是基于哈希表的Map接口的非同步实现…

Zabbix 部署----安装 Zabbix(监控服务器)

目录 zabbix 官网: 1、准备一台虚拟机 1.整理配置yum源(192.xx.xx.10) 2.设置主机名(192.xx.xx.10) 3.防火墙 4.selinux 2、准备Zabbix-repo 使用阿里提供的zabbixYUM源 3、安装Zabbix服务器 4、初始化数据库 1.安装数据库 2.启动数据库 3.授权zabbix账号 4.初始化…

数据结构强化(直播课)

应用题真题分析&备考指南 (三)线性表的应用 (六)栈、队列和数组的应用 (四)树与二叉树的应用 1.哈夫曼(Huffman)树和哈夫曼编码 2.并查集及其应用(重要) (四)图的基本应用 …

74、Python之函数式编程:深入理解惰性求值与生成器

引言 我们在过程式编程或者面向对象编程中(当然也不局限于这些),涉及到计算、数据的转换处理时,通常是执行到对应的语句或者表达式时,就会完成计算或者数据处理。大多数场景下,这样立即计算的方式是没有问…

基于SpringBoot的社团管理系统【附源码】

基于SpringBoot的社团管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 5.1.2 社长信…

【kafka-04】kafka线上问题以及高效原理

Kafka系列整体栏目 内容链接地址【一】afka安装和基本核心概念https://zhenghuisheng.blog.csdn.net/article/details/142213307【二】kafka集群搭建https://zhenghuisheng.blog.csdn.net/article/details/142253288【三】springboot整合kafka以及核心参数详解https://zhenghui…

Golang | Leetcode Golang题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; func canPartition(nums []int) bool {n : len(nums)if n < 2 {return false}sum, max : 0, 0for _, v : range nums {sum vif v > max {max v}}if sum%2 ! 0 {return false}target : sum / 2if max > target {return false}dp …