作者 | 哎嗨人生 编辑 | 哎嗨人生
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
回家过年!
入职一两个月以后,对项目代码熟悉了,电脑的开发环境也配置好了,如果没有遇到开发新项目的节点,那么我们大概率就要开始修bug了。这里记录一下我关于修bug的一些心得体会。包括在心理上如何应对,在技术上如何处理等。
1.bug有哪些类型
我分为四类,即紧急bug 、不紧急bug、自己引入的bug、前人留下的历史bug。四个类型可能有重叠,不是很严谨。
(1) 紧急bug
比如现场反馈的严重问题,有安全隐患的bug,或者严重影响用户生活工作的bug。这种一般会引起领导重视,如果我被安排处理这个bug,那将是比较痛苦的。不分昼夜,不分假期,领导会24小时随时询问进展,直到bug修复为止。
(2) 不紧急的bug
比如一个不痛不痒的小bug,或者是算法性能上的一个小瑕疵,需要调参优化。这种bug一般不着急,画个一两天时间处理了就行。
(3) 自己引入的bug
这类bug,不管严重不严重,自己都会比较紧张,因为是自己引入的,总会想着赶紧修复了。这种bug,分析和定位问题一般比较容易,自己也清楚应该如何修复。
(4) 前人留下的历史bug
如果是前人写的代码出了问题,而前人已经离职了,那这种bug就只能先看代码,理解这段代码的功能逻辑,然后再去修复。此类bug修复起来要极其谨慎。
2.应对时的心理
初入职场时,我总是觉得所有的bug都很严重,尤其是自己引入的bug。一听说有bug,瞬间压力报表,感觉这个bug不处理,会影响全人类的生存似的。就弄的自己很紧张。其实没有必要给自己这么大心理压力。写bug很正常,无论新手还是老手,所以不要有心里负担。咱就是个打工的,bug分析不出来,修复不了,公司也不会倒闭,自己也不会被开除,地球也不会毁灭。(当然如果bug严重到自己会被开除,那也认了)。
刚入职那年,我一遇到bug,饭都不吃了,没心思吃,全身心扑在处理bug上,整个人处于高压状态,直到修复完成。下边是我总结的一下心得:
(1) 写bug是正常的,无论新手老手,当然如果太频繁的话,就得反思一下了。
(2) bug是处理不完的,这就是工作的常态,所以该吃饭吃饭,不要有心里压力,你又不是公司老板。
(3) 无论多严重的bug,只要不会导致自己被开除,就不要太紧张,自己尽力去做就行。
3.修复bug的一些经验
(1) 积累自己的测试集
这个是我第一次转行入职的那家公司的领导教给我的。当时规划器的一些参数需要调整,以应对一些场景,但是总是调参后,这个场景可以了,其他场景又出问题了。领导让我积累一些数据,每次调参以后,都要过一遍数据,看看对其他场景的影响。所以,我就收集了大量的数据,写了脚本去批量测,然后结果存成图片,每次调参后,就浏览图片就行。
(2) 最小改动原则
对于紧急bug,或者前人留下的bug,要本着最小改动的原则,避免引入新的bug。如果修改了某一个参数,务必全局搜索一下,看看有没有其他地方在用。这样,即便这个bug修复不成功,也不至于引入新的bug。
另外,对于修复bug时,代码尽量新增在一个地方,即宁可在一处新增一个函数,也不要在老的函数里到处修改。
(3) 新增代码务必每一行都测试到
对于修复bug而引入的代码,自己自测时,一定要运行过每一行,再不起眼的一行代码,都要运行到。因为bug很可能藏在你认为不会出问题的地方。
(4) 崩溃检查
但凡用到了数组下标,指针,new,都要确认是否为空,有没有delete,这些是最容易崩溃的地方。
4.总结
(1) bug是工作的一部分,需要习以为常,不要一有bug就坐立难安,该吃饭吃饭。
(2) 写bug很正常,不要有心里负担,如果没有bug,那就不需要员工了。
(3) 对自己的代码负责,上线前充分自测。
(4) 只要不会导致自己被开除,那就不要过分紧张,用平和的心态去认真对待每一个bug
(5) 公司是老板的,身体是自己的,不要自己给自己压力,把压力就在老板那里。
过年回家了,祝大家新的一年,工作顺利,bug都能一眼看出来。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵