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

  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. 07 设置View的显示与隐藏

    在代码中: 例子: <span style="font-size:14px;">ImageButton imageButton = new ImageButton(th ...

  2. javascript之事件模型

    事件模型 冒泡型事件(Bubbling):事件由叶子节点沿祖先节点一直向上传递到根节点 捕获型事件(Capturing):由DOM树最顶元素一直到最精确的元素,与冒泡型事件相反 DOM标准事件模型:D ...

  3. Redis简介以及数据类型存储

    由于我们在大型互联网项目当中,用户访问量比较大,比较多,会产生并发问题,对于此,我们该如何解决呢,Redis横空出世,首先,我们来简单的认识一下Redis,详细介绍如下所示: Redis是一个开源的, ...

  4. 高斯函数 --> 高斯分布(正态分布)

    具有如下形式的函数就是高斯函数. 其中a,b,c都是实数常数,a大于0 .由于在博客中写数学公式比较麻烦,还是直接放照片吧. 字写的很难看,不过应该可以看清楚.:(

  5. Linux 基于IPC机制实现进程间的共享内存处理

    今天学习了相关于IPC(InterProcess Communication ,进程间通信)的相关知识.就做个笔记,一来让大家检查一下我的理解方面是不是有错误,二来也为了能让更多的博友们了解到相关的知 ...

  6. 美国康奈尔大学BioNB441元胞自动机MATLAB应用

    美国康奈尔大学BioNB441在Matlab中的元胞自动机 介绍 元胞自动机(CA)是用于计算计划利用当地的规则和本地通信.普遍CA定义一个网格,网格上的每个点代表一个有限数量的状态中的细胞.过渡规则 ...

  7. Uva - 512 - Spreadsheet Tracking

    Data in spreadsheets are stored in cells, which are organized in rows (r) and columns (c). Some oper ...

  8. 程序员大牛 Jeff Atwood 的两本中文书

    程序员大牛,StackOverflow.com创始人之一--Jeff Atwood 英文博客:http://blog.codinghorror.com <高效能程序员的修炼>,人民邮电出版 ...

  9. Android进阶(四)一个APP引发的思索之ArrayList的add总是添加相同的值

    解决"ArrayList的add总是添加相同的值"问题 前言 最近在写一个小的Android APP,在用ArrayList的add时,总是出现添加相同值的现象.如下图所示: 错误 ...

  10. iOS中 Swift初级入门学习(一)

    / // Copyright (c) 2015年 韩俊强. All rights reserved. // import Foundation // Swift当中的输出函数 // println S ...