开发之前,就要先设计,理清好思路;如果需求都不清楚,软件肯定有缺陷;

  1. 和客户、测试的沟通

如果开发出来的东西本身就有BUG,交给测试,会浪费很多人的时间。

  1. 开发做完一个功能后,要自己做一遍测试
  2. 自己的测试要考虑到各种情况
  3. 后台的代码写好后要做好单元测试
  4. 自己的测试思路和后台的测试代码,需要保存下来

开发人员注意培养的能力

  1. 代码设计能力
  2. 良好的编程习惯
  3. 良好的数据结构和算法
  4. 编程规范的遵守
  5. 随时资源的释放,避免内存泄漏避免导致性能下降的代码
  6. 异常处理
  7. 对维护、部署、可用性、性能、稳定性的全面,良好的文档和注释习惯等等

代码的健壮性

  1. 程序的运行,依赖与用户参数的输入,所有参数必须经过验证和检查。
  2. 编码过程中不能只考虑到主干、正常情况下的运行,细节与异常也需要处理;比如是否要判断为空。比如记账的时候对数据不存在情况的考虑,比如起初期末对数据存在的考虑;
  3. 程序的流程一定要清晰,尽量的简单;不要出现很复杂的、庞大的代码;极难维护。比如用户管理,对岗位的维护;出现了庞大的程序,以后维护的时候,自己就很难看懂,看懂后修改也会有遗漏的地方,要做复杂的功能,一定要想想有没有更好的设计方法。
  4. 修改BUG后,对所有造成影响的地方,都要做测试

单元测试

良好的编程习惯和规范

cross review 同级和跨级评审

使用成熟的经过验证的代码;功能本身不值钱,值钱的是代码中的业务和细节;

关于减少BUG的思考的更多相关文章

  1. Flash,一次Bug的思考

    我绝对不算是F黑,大部分时候,我还是很挺Flash平台的,Flash提供了很好的跨平台特性以及Flash Player11后的GPU加速.Stage3D等等,对于开发者来说,绝对让人欣喜若狂(对我是这 ...

  2. 在Java编码中,如何减少bug数量

    众所周知,Java编程语言在IT行业是企业中不可缺少的.不管,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能.但在编写代码时,bug永远是困扰每一位从业者的头号 ...

  3. 一次关于使用status作为变量引发的bug及思考

    这个bug出现在一年前,当时自己大学还没毕业,刚刚进入一家公司实习.那个时候还没有用seajs或者requirejs那样的模块化管理的库,也没有用一个自执行的函数将要执行的代码包裹起来,于是bug就在 ...

  4. 关于修改bug的思考

     作者:朱金灿 来源:http://blog.csdn.net/clever101 有软件就有bug,这意味着软件研发不仅仅是新功能开发,更要拿出相当一部分精力去修改bug.但基本很多软件开发者并 ...

  5. 通宵修复BUG的思考

    HYH.LXJ昨晚通宵修复11月版需求的bug,因为代码提到测试环境后,阻碍了一个分行进行验收测试,业务人员直接把问题反馈给了上级领导,压力下来,项目组就把问题重视起来. 对于通宵加班这件事,应该点赞 ...

  6. 一个友盟BUG的思考和分析:Invalid update

    1.友盟错误信息 Invalid update: invalid number of rows . The number of rows contained ) must be equal to th ...

  7. 程序员减少bug

    1.认真理解需求 2.构思好程序逻辑流程,再编写 3.编写单元测试 4.多进行case测试,做好功能测试 5.互相review代码

  8. 好的编程习惯是减少bug最有效的方法

    公司来了几个新手,有时候很简单的一个功能模块都要耗费好几天时间,总是在一些不相关的问题上死耗一整天,搞出莫名其妙的问题,找不到具体原因,总是怀疑编译出问题了,系统出问题了,板子出问题了,搞到快下班了叫 ...

  9. 关于bug分析与异常处理的一些思考

    前言:工作三年了,工作内容主要是嵌入式软件开发和维护,用的语言是C,毕业后先在一家工业自动化控制公司工作两年半,目前在一家医疗仪器公司担任嵌入式软件开发工作.软件开发中,难免不产生bug:产品交付客户 ...

随机推荐

  1. 人类创造未来的思想先锋:这些 TED 演示深深震撼着我们

    今年亮点之一是谷歌创始人拉里佩奇的演讲.他有一个核心观点:特别成功的公司,是那些敢于想象未来,并付出行动创造未来的公司.这听上去是老生常谈,但又确实是个真理.他实际上想说预测未来的最好方式就是创造它, ...

  2. UNIX环境高级编程——网络编程常用函数及结构

    IP地址的转换 #include <arpa/inet.h>  int inet_aton(const char *strptr,                     struct i ...

  3. 【一天一道LeetCode】#119. Pascal's Triangle II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  4. pig中查询top k,返回每个hour和ad_network_id下最大两个记录(SUBSTRING,order,COUNT_STAR,limit)

    pig里面是有TOP函数,不知道为什么用不了.有时间要去看看pig源码了. SET job.name 'top_k'; SET job.priority HIGH; --REGISTER piggyb ...

  5. Java进阶(二十八)SimpleDateFormat格式化日期问题

    SimpleDateFormat格式化日期问题 前言 发现一个问题,经过以下语句处理后,发现12:27:45转换后成为了00:27:45. DateFormat df = null; if(DATE1 ...

  6. 基于Struts+Hibernate开发过程中遇到的错误

    1.import  javax.servlet.http.HttpServletRequest 导入包出错 导入包出错,通常是包未引入,HttpServletRequest包是浏览器通过http发出的 ...

  7. H5学习之旅-H5列表(8)

    列表的基本语法 ol:有序列表 ul:无序列表 li:列表项 dl:列表 dt:列表项 dd:列表描述 常用列表 1.无序列表:使用标签 ul,li 属性:disc(默认实心圆) circle (空心 ...

  8. 一个优化极点的ViewHolder

    代码中有注释: 使用方法: 1.可以在listview,gridview,stageView直接继承LazyAdapter使用 2.下面有Demo 代码 ViewHolder代码: import an ...

  9. Android StringEntity() 和 UrlEncodedFormEntity() 的区别

    今天在做安卓客户端向服务器提交数据的过程中,在组织POST数据时,用了UrlEncodedFormEntity()这个方法,但是后台报错,说是无法解析json内容. 按照本来的想法,向后台发送的是 j ...

  10. Logistic Regression求解classification问题

    classification问题和regression问题类似,区别在于y值是一个离散值,例如binary classification,y值只取0或1. 方法来自Andrew Ng的Machine ...