技术开发 频道

软件开发人员常犯的错误



   【IT168 专稿】软件开发这项工作在软件公司一般没有明确的界线,开发人员也角色各异,小到刚进公司的实习员工,大到项目经理、项目主管,如果项目需要都会投入其中从事编码工作,这里我们暂且将所有与代码打交道的人全部划为开发人员的范畴,在开发人员这个群体里水平也各不相同,有刚入门级的、初级的、中级的、还有高级程序员,他们在开发过程中风格不同,各有各的方法,也各有各的不足,以下根据笔者在开发中遇到的问题,总结了几点与大家分享。

    不严格遵守开发规范:每个软件公司都有自己的一套开发规范,用来约束开发人员在编码过程中对象的命名、控件的大小、快捷键的定义及界面规范等,保证软件实现时有统一的标准可参照,并达到合理利用公用资源的目的,开发规范的遵守关系到将来软件的整体外观、易用性及可维护性的问题,在开发过程中有些开发人员不遵守开发规范,导致软件各功能风格不统一,按钮有长有短、字体大有小,而且在后期维护过程中也会由于命名的问题给维护人员带来不便;例如:我们在开发过程中有时会随手拖一个控件上来,对其大小、命名、位置摆放太随意或者对函数的命名不规范,不能表达函数的作用是什么,有时候我们也会遇到,同一类功能界面风格却不同,使软件给人的印象不严谨等等,所以在工作过程中制订开发规范很重要,同样使开发人员能够很好的遵守开发规范也很重要。 

    不理解需求设计就写代码:开发人员水平层次不同,对业务理解的程度也不同,开发过程中很多开发人员一拿到设计文档就开始写代码,不去思考实现的方法,这一点非常可怕,导致的结果往往有几种情况:一、开发出来的软件与设计不符,达不到客户的要求,不能满足客户的现有业务;二、造成代码冗余,影响系统的性能,大大降低工作效率;三、实现思路错误,重新返工等等,特别是开发经验少的新员工,很容易犯类似的错误;例如:开发人员拿到设计文档后,没详细理解,就直接投入开发,开发过程中经常发现原来自己写的这个功能(如单据中的查找功能),别处也有类似的调用,要把它做成公用的,由于目前代码的局限性,需要大的改进或重写等等,可见先思考后解决问题的重要性,拿到设计文档后首先要把整个流程理顺,中间涉及那些功能要做到心中有数,这样才不至于犯类似的错误,一般国内很多软件公司的资深开发人员都参与设计工作,这部分人不仅能够很好的理解设计思路,还可以对设计中的不足提出建议。


    缺少自测:开发人员缺少自测主要是太过于自信,对自己开发的软件下不了手也是很多开发人员的通病,开发人员往往过于自信,认为自己开发出的功能应该没有问题,导致测试力度不够;开发阶段的自测很关键,可以将问题解决于萌芽状态,因为很多问题在后期测试阶段测试人员是很难发现的,在我们开发过程中,经常会遇到开发人员完成某个功能后,随便点两下没问题就提交了,这显然是不负责任的表现,对于功能单一、不涉及复杂逻辑的功能可能提交后会在测试阶段发现并修正,但对于涉及内部数据交互并且业务复杂的功能,是需要下大力气测的,很多细节的问题比较隐蔽,在测试阶段不一定能暴露出来;例如:单据之间的核销或记账功能,涉及内部数据的频繁交互,大部分测试人员还达不到白盒测试的能力,只能从表面上去测试数据的正确性,很多潜在的问题还需要开发人员的自测,对数据进行跟踪调试,分析可能出现问题的原因等等,所以开发阶段的自测非常关键。

    缺少沟通:有效的沟通可以避免很多问题的发生,也可以避免重复劳动,便于开发的顺利进行;通过与开发经理之间的沟通,可以学到很多敏捷开发的方法,少走很多弯路;通过与开发人员之间的沟通,可以了解很多相互借鉴的地方,互相充补,并且还可以了解公用资源,避免工作冗余;通过与设计人员之间的沟通,可以学到很多设计理念,有助于更深入的理解需求设计等;但沟通不能流于形式,要达到应有的目的,在我们开发过程中,经常会遇到需求分析人员编写的需求文档设计人员看不懂、设计人员编写的设计文档开发人员看不懂、开发人员编写的软件测试人员看不懂,这些都是无效沟通的结果;例如:开发过程中有时会发现,有些开发人员遇到不明白的问题,他不去问、不去跟其它同事交流,而是自己闷头去想,等问题想明白了,代码也写完了,却发现原来自己写的功能或某个函数公用库里已经有了,直接拿来调用就可以,这样不仅浪费了时间还做了无用功。

    只解决问题不思考问题:开发人员在处理问题时可以用“兵来将挡、水来土掩”来形容,能及时无误的解决问题,还不能算是好的开发人员,好的开发人员还应该善于思考、总结,在解决完问题的情况下,分析问题出现的原因,在那个阶段出现的,由什么原因引起的,并总结出在以后的开发过程中如何避免的方法,保证在同一阶段不会再犯类似的错误,这样才能算一名合格的开发人员;例如:开发或维护过程中有时我们会遇到比较棘手的问题,跟踪调试半天才会有结果,最终把问题解决掉,问题解决后,有些开发人员会去分析问题的原因及解决方法,而有些开发人员则认为万事大吉,就怕再提起该问题,更别说再去分析了;在我们现实的开发或维护中,会发现很多不足,有时只顾着处理问题,而忽略了分析问题,治标不治本,虽然问题解决了,但对开发人员的成长意义不大,所以开发人员要多思考、多研究。

    缺少主动学习、创新的能力:现在的软件公司一般都鼓励员工在工作中创新,不断发现新技术、解决技术难题等,创新是很广义的概念,不要把它想象的跟自己距离很远,任何新概念的提出都是创新,在任何行业都一样,只有创新才能推动新产品不断发展;另外一点就是开发人员的学习接受能力,软件行业发展很快,开发工具更新换代也比较快,对开发人员在学习能力要求比较高,不担熟练的使用开发工具,还要不断接受新事物,熟练的技术是软件稳定性的保障;另外还要在业务知识、数据库等方面有所了解,这是一个长期持续的过程,要有所坚持;比如我们可以在工作之余更深入的学习开发及业务知识,研究一下竞争对手的软件,取长补短,不断的学习改进,创新的同时也是对自身能力的提高。 

    没有养成良好的编程风格:这一点是要求开发人员写出的代码不仅自己能看懂,还要让其它开发人员也能看懂,便于后期的维护,主要体现在脚本的注释上,提倡代码文档化;维护人员在日常的产品维护中经常会遇到几十行甚至几百行代码都没有注释的现象,这样不仅给维护人员带来烦麻,还会导致由于维护人员看不懂代码而改错问题或重新编写的情况;例如:我们在软件的后期维护中,经常为调试某个问题而弄的焦头烂额,调试的代码中函数里调函数、事件里调事件,没有几行注释,反复调几次就转晕了,对新员工来说更是无从下手,这种现象屡见不鲜,所以我们在开发过程中不要为图一时之快而忽略了写注释,另外简洁易读的代码对新员工快速上手也有很大帮助,会影响他们以后的编码作风,起榜样的作用。 

    责任心不够强:最后一点也是最重要的一点,以上各点都是建立在责任心的基础之上,对工作要有热情,开发人员如果没有良好的责任心,自律能力差,就不能很好的完成开发任务,工作中我们也经常会发现很多责任心不强的开发人员,开发过程中不按标准办事,按钮随处放、大小不统一、不对齐等现象,这一点与个人习惯有关系,但关键还是在于公司的培养与引导,与公司的文化有很大关系,责任心强了,凡事都主动了,就会达到事半功倍的效果。

    只有认识到自身的缺点,在工作中不断的学习、及时改正,才能提高自身的价值,才能开发出高效的软件;现在软件开发这个行业已经非常普及,每年都会培养大批的软件蓝领,行业竞争日渐激烈,要想在这个行业中体现自己的价值,就要不断的完善自己,都说软件开发是吃青春饭的职业,这种说法有些极端,凡事都有逐渐过度的过程,这期间完全可以靠自己的能力向更高目标迈进。
1
相关文章