程序员写的代码就不能没有Bug吗?是程序员能力的问题吗?

网友解答: 可以的,但是请保证需求一次性写好并且考虑完善,而且给程序员留出足够的设计和开发时间。完成的项目开发,包括:提出需求、需求分析、架构设计、概要和详细设计、开发、测试、上线。但是

网友解答:

可以的,但是请保证需求一次性写好并且考虑完善,而且给程序员留出足够的设计和开发时间。

完成的项目开发,包括:提出需求、需求分析、架构设计、概要和详细设计、开发、测试、上线。但是在实际的开发过程中,开发人员经常会遇到这样的问题:

业务人员也不知道自己想做什么。是的,你没有听错,很多业务人员自己都不了解业务。所以他们提的需求会天马行空,也会经常变化,甚至开发还没有结束,需求已经变了。

需求人员就是传话筒,业务人员说什么,需求人员写什么,不做筛选和加工。

开发时间紧,很多时候是没有设计时间的,需求讨论一下就开始敲代码,因为时间真的很紧。单元测试用例覆盖度?哪有时间写单元测试呢。

测试只会页面点点点,只能测到表面,比如我见过这样的BUG:“页面的按钮名字叫做【新增】,需求写的是【新建】,所以这是一个BUG”。好吧,这确实是一个BUG,但是你们不能只找这种程度的BUG啊。

由此可见,项目流程中的每一个步骤,都会造成BUG的产生,只不过大部分锅都是由开发人员背的。

细说一下开发,我们既然不能要求别人怎么样,但是至少要把开发做到最好:

开发人员尽可能的早一些参与到需求讨论和确定中。不一定非得是开发人员,可以是项目经理、架构师或敏捷开发中的PO/Master。这样有几个好处:尽早了解客户需求,如果有不合理的地方可以及时纠正;避免需求在传递中缩减或理解偏差;还可以在需求讨论过程中,完成一部分设计。

可以没有设计文档,但并不是说可以没有设计,我认为在开发之前,一定要留出一部分时间,想一想实现方案。

增加代码的复用性,我们经常会遇到这样的问题:相同的逻辑四处都有,修改的时候要改很多地方,这样增加了测试的难度;还有就是,可以减少我们开发的工作量。

一定要花时间摸清楚老代码,有些程序员接手一个项目的时候,宁可重新写一个新方法,也不愿意修改老代码,长此以往,这项目的代码就真的没人敢动了。

说回测试用例,最好能投入一些时间去写,前期是一件非常痛苦的事情,但是当测试用例覆盖度积累到一定程度之后,很多隐形的BUG就能避免了。

最后,希望业务、需求、开发、测试、运维可以一条心,把一个项目做好,而不是出现BUG之后互相指责。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。 网友解答:

个人经验,首先了解bug和什么有关,当然程序员能力也是一方面,这里就不提!

第一,程序的复杂程度,如果一个简单几十行代码搞定的小程序,可以保证没有bug。

第二,程序测试程度,当然过于复杂的系统或程序只能说测试时间越长bug会慢慢减少,并不能保证完全无bug。

第三,很多逻辑问题存在悖论,也就导致无论怎么做都不可能完美的解决,也会导致bug。

即便是微软的windows 系统,阿里的淘宝还是昨天被羊毛党撸了200亿(数据不知道真假,圈内了解的大概也有8位数)都是存在bug,即便是现在都还是存在一些很难解决的bug!所以即便在厉害的程序员也不能保证完全没有bug!

标签: