您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
程序员写的代码就不能没有Bug吗?是程序员能力的问题吗?
程序员,代码,需求程序员写的代码就不能没有Bug吗?是程序员能力的问题吗?
发布时间:2020-12-06加入收藏来源:互联网点击:
程序员写的代码就不能没有Bug吗?是程序员能力的问题吗?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
可以的,但是请保证需求一次性写好并且考虑完善,而且给程序员留出足够的设计和开发时间。
完成的项目开发,包括:提出需求、需求分析、架构设计、概要和详细设计、开发、测试、上线。但是在实际的开发过程中,开发人员经常会遇到这样的问题:
业务人员也不知道自己想做什么。是的,你没有听错,很多业务人员自己都不了解业务。所以他们提的需求会天马行空,也会经常变化,甚至开发还没有结束,需求已经变了。
需求人员就是传话筒,业务人员说什么,需求人员写什么,不做筛选和加工。
开发时间紧,很多时候是没有设计时间的,需求讨论一下就开始敲代码,因为时间真的很紧。单元测试用例覆盖度?哪有时间写单元测试呢。
测试只会页面点点点,只能测到表面,比如我见过这样的BUG:“页面的按钮名字叫做【新增】,需求写的是【新建】,所以这是一个BUG”。好吧,这确实是一个BUG,但是你们不能只找这种程度的BUG啊。
由此可见,项目流程中的每一个步骤,都会造成BUG的产生,只不过大部分锅都是由开发人员背的。
细说一下开发,我们既然不能要求别人怎么样,但是至少要把开发做到最好:
开发人员尽可能的早一些参与到需求讨论和确定中。不一定非得是开发人员,可以是项目经理、架构师或敏捷开发中的PO/Master。这样有几个好处:尽早了解客户需求,如果有不合理的地方可以及时纠正;避免需求在传递中缩减或理解偏差;还可以在需求讨论过程中,完成一部分设计。
可以没有设计文档,但并不是说可以没有设计,我认为在开发之前,一定要留出一部分时间,想一想实现方案。
增加代码的复用性,我们经常会遇到这样的问题:相同的逻辑四处都有,修改的时候要改很多地方,这样增加了测试的难度;还有就是,可以减少我们开发的工作量。
一定要花时间摸清楚老代码,有些程序员接手一个项目的时候,宁可重新写一个新方法,也不愿意修改老代码,长此以往,这项目的代码就真的没人敢动了。
说回测试用例,最好能投入一些时间去写,前期是一件非常痛苦的事情,但是当测试用例覆盖度积累到一定程度之后,很多隐形的BUG就能避免了。
最后,希望业务、需求、开发、测试、运维可以一条心,把一个项目做好,而不是出现BUG之后互相指责。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
回答于 2019-09-11 08:43:50
谢邀,作为BAT的Java开发工程师来回答这个问题。
首先,没有程序员能写出没有bug的代码。电影里动不动就看到随便找一个程序员就能写出一个程序黑进某某系统,或者千钧一发之际改完程序立刻run起来就对准了木星(没错,就是《流浪地球》,虽然我也很喜欢李一一,但是我还是想说,代码写完/改完不经过测试就直接运行,基本等于找死,何况是对准木星那么庞大的项目,要是都这么厉害,阿里也不至于每年九十月就开始压测备战双十一了),我都内心一句忍不住马赛克。
基于我的经验,我没见过身边哪个同事能没有bug,不管是新入职的实习生,还是待了5~10年的老油条,都是如此。我们说一个程序员的能力高从来不是说他交付的代码没有bug,因为他之前交付的代码没有bug,不代表他之后的也没有bug,人类不是机器,偶尔疏忽或考虑不周才是正常人。况且,如果他在完成代码之后,如果又花了大量时间去自查bug,这个时间投入的ROI还不如快速自查,把明显的bug修复掉,隐藏的小bug交给专门的测试人员去捕捉,把节约的时间用来多写点代码划得来,程序员做事情是要讲究性价比的。
那么bug和一个高能力的程序员之间是什么关系呢?
bug可以出现,但是同样的bug不能出现3次
所谓事不过三,不论是不是程序员,都需要吸取错误中的教训,如果第一次由于经验或者知识量不足,导致出现了bug,这个是可以接受的,只要保证下次不会再犯了,就没有人会为此而对你的评价有所降低。
快速的bug自查能力
写完代码之后,交给测试人员之前,通常要进行自查。这段时间内,如果你能够快速找出开发过程中考虑不周的漏洞,及时补上,那么也就相当于在bug存在之后,但是在被发现之前处理掉了。这就要求程序员有一个良好的思维跳出能力,从个人经验来说,这方面主要依赖细心以及经验,面对同样的代码,一个程序员老鸟通常能够快速定位bug的潜在点,这主要依赖于他们丰富的经验,说不定他们之前也犯过错,所以能够比你更快找到问题。
综上,所有程序员都会写bug,不同的是有的程序员能够吸取教训,使bug只出现一次,或者在bug被其他人发现之前快速修改掉。这个过程其实正是你的编程能力不断提升的过程,因此不要害怕bug,它们就像超级玛丽里的小乌龟们一样,看起来挡了路,但是踩了bug就能跳得更高。
以上是我的浅见,欢迎各位在下方评论区给我交流点赞。
我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。
回答于 2019-09-11 08:43:50
是的,能力强的都转行了。
上一篇:去西沙群岛可以用无人机吗?哪些地方可以用无人机摄影?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |