由一个bug产生的感想

2024-08-23 11:38
文章标签 bug 产生 感想

本文主要是介绍由一个bug产生的感想,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近工作中没有进展,感觉有点急躁,还一直在犯错误,再加上临近年关,有点不在状态,也是很苦恼

个人认为一份工作做不出来成绩是对自己最大的浪费,当然成绩不光是靠努力换来的,而且现在的体会是努力只能占60%的因素(99%的汗水和1%的灵感我感觉是骗人的,成绩就是靠那1%的灵感来的),但是灵感是怎么来了的,肯定是对每个问题进行深入的研究和考量。但是工作的习惯,思考的方式,思考的方都是很影响工作的

上周写了一个bug,应该算是一个很严重的bug,影响面现在还没多大,因为现在还是实验阶段,线上没有太大的量。
自己一直认为这种事情是自己的性格(粗心)造成的,其实后面发现是因为没有养成良好的工作习惯。

回到工作上,怎么避免bug?

不好意思bug是避免不了的,但是bug是能够减少的,怎么减少bug呢

(1)代码整洁
代码整洁是减少bug的基础,写出整洁的代码是很不容易的,代码格式化到甚至是一个换行或者括号,都应该形成一个好的习惯。

(2)做好架构设计
写代码之前,必须做好设计,每个模块之间的结构和联系,想好之后再写代码,不然慌乱写肯定出bug。

(3)做好自测
做好测试是减少bug的重点,每个人都会写出bug,针对每个模块做好测试也是非常重要的,如果发现哪个模块不能测试,说明这块的代码肯定设计的不合理。

(4)写好注释
每个人的写的代码,过两个月再回去看,每个人都会看不懂,尤其是每次出现bug,再去查问题逻辑都会不懂,所以写好注释是很关键的。

回想起自己刚刚工作的时候,造成了一次线上很大事故,把整个LS集团的服务器的配置信心全部搞乱了,虽然没有造成线上影响,但是对于运维工作人员造成了极大的困扰。造成这个事故,肯定我是最大的责任,这个我承认,但是其实工作的流程,也在这个事故中体现的淋漓尽至,目前互联网公司的流程能做到很规范的很少,尤其是内部系统,在这种情况下,个人的素质体现的更加重要。

其实会发现身边的人从外企出来的,从传统企业出来还有从比较大的公司出来的人,写的bug是相对较少,我认为并不是他们的能力比我们强多少,强的点在与规范上,如果自身能做到上述几条,最少能减少50%的bug。如果后续再有测试介入,肯定系统会稳定很多。

代码设计感想:
这个概念好泛,怎么才能写出牛逼的代码,设计肯定占有很大的比重。
(1)想想当初我是怎么做的,开始写程序,大家都会犯一个错误,就是一写一大片,就一个函数到底,最后一个mian函数测试,几乎每个人都是这么开始的,这样写的好处是什么就是思路清晰。但是这种代码对于别人无异于就是在吃一堆垃圾。当时我就想怎么去优化,开始我就强制自己的一个函数不能超过100行,超过100行就强行写另一个函数,慢慢的减少到不能超过50行,然后就是这一个程序,慢慢的改,慢慢的抽离。也就是说我是先写好代码,再进行设计,慢慢的会发现,再去写程序,绝对不会一写一大堆了,能抽离的全部抽出来了

(2)程序的算法和效率,程序的效率很要命,尤其是在互联网2C的行业。算法的时间复杂度和空间复杂度好像是每次面试的必面的,想想深层次的原因,如果对于亿级的访问来说O(n2)和O(n)的差距是亿级的,这还是很恐怖的,所以建议大家,在大量的写业务逻辑的同时,想着怎么去优化一下代码的效率,深入思考几个场景后,基本上续后的代码就会有一个质的飞跃,也建议大家没事多刷刷leetcode

(3)上述只是初级阶段,代码设计还有更高阶的,考虑设计模型,底层通信,交互等等,这块我也不敢班门弄斧,自己认为我这块还是在初级阶段,我还得潜心修炼。至于架构的设计更不敢造次!

这篇关于由一个bug产生的感想的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1099276

相关文章

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

初步学习Android的感想

之前在学习java语言的时候就经常听说过Android这门语言,那时候感觉Android有些神秘感,再加上Android是用来开发移动设备的一门语言,所以一直对Android抱有一种兴奋的心情。 在我开始接触 Android之后,感觉超好玩,因为可以在自己的手机设备上开发一些我喜欢的小应用,再想想之前说学习Android应该会很难,但是如果你真的接触了,而且有JAVA的功底,我想学习Androi

JavaBug系列-解决SpringBoot返回Xml结构的问题

JavaBug系列之SpringBoot返回Xml结构的问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 作者:Java医生 教学: Java企业项目辅导,专注于辅导新入职员工,解决各种问题! V:study_51ctofx 一、关于错误信息 如图,SpringBoot请求返回Xml格式信息 通过以上信息分析,

JavaBug系列- Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class load

JavaBug系列之Mysql驱动问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 Java/一对一零基础辅导/企业项目一对一辅导/日常Bug解决/代码讲解/毕业设计等 V:study_51ctofx 一、关于错误信息 APPLICATION FAILED TO START Description: Fai

【解决bug之路】npm install node-sass(^4.14.1)连环报错解决!!!(Windows)

有关node-sass的深入分析可参考:又报gyp ERR!为什么有那么多人被node-sass 坑过? 主要有如下三方面错误,请自查: 1.node,npm版本需与node-sass版本匹配,像node-sass(^4.14.1)就得node 14.x版本才可以,node 16不行 gyp ERR! build error15 gyp ERR! stack Error: `

排查 MyBatis XML 配置中的 IF 语句与传值名称不匹配的 Bug

文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 前言,在改一个bug得时候发现一个有意思得问题,就是mybatis得xml中if判断得问题,传值名字不匹配依旧可以进行判断,如下图 传值userName,但是有意思得事情出现了,进了if,并且没有报错,尝试了两次都是这

彻底解决魅族手机无法彻底卸载应用的bug

使用Flyme系统的同学可能会遇到一个问题: 卸载了某些软件(例如通过开发者模式调试安装的应用)后,实际这个应用还残留在系统,当你用低版本或者其他签名的apk覆盖安装的时候会提示“安装失败”,要求你卸载后重新安装。 可是无论你从应用列表寻找还是清理垃圾,都根本找不到这个应用。 闹鬼?这个bug一直伴随着flyme,可怜工程师们竟然一个都没发现。 今天笔者教大家一招解决这个问题。

今天做了freemaker 导出word文档 的bug修复,解决 \n换行 问题

结合Freemaker导出文件 public void exportSimpleWord() throws Exception{// 要填充的数据, 注意map的key要和word中${xxx}的xxx一致Map<String,String> dataMap = new HashMap<String,String>();dataMap.put("username", "张三");dataMap.

【软件测试】软件测试-----什么是Bug?Bug是如何分级的?Bug的生命周期是怎样的?如何描述一个Bug?

博客目录 一.软件测试的生命周期二.BUG的定义和级别2.1 bug的概念.2.2 如何描述一个bug.2.3bug的级别2.3.1 bug分级的意义.2.3.2 bug的四种级别. 三.BUG的生命周期.四.当与开发人员发生冲突该如何处理(高频面试)五.总结 一.软件测试的生命周期 软件测试贯穿于软件的整个生命周期,针对这句话我们一起来看一下软件测试是如何贯穿软件的整个生命周

【ListView】有关填充bug

假设要实现如下效果 ListView里若使用RelativeLayot则会出现错误 得不到垂直线的填充 线性布局的高度设置为match_parent会使高度为0,必须给它一个固定值,比如20dp ListView建议使用LinearLayout在最外层,而最外层的宽高无论如何设置都无法确定的,建议第二层也使用linearLayout来布局 【实现