`
javer
  • 浏览: 68655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

程序员怎么样保证自己的程序没有BUG

阅读更多

  毫无疑问,程序员是善于思考问题的一族。一个程序的编写都是通过:思考、设计、编写、调试、测试以及运行这些基本的阶段。但大部分程序员都有一个问题就是不太愿意测试自己的代码。他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作。

  按照理论上,如果代码存在问题,那么测试人员和最终的用户肯定可以发现这些 BUG ,而等待哪个时候再返回来查找问题到底错在什么地方确实代价不小,其代价有:

  1. 影响了程序员自己的声誉

  2. 影响了产品的质量

  3. 影响了客户的信任度

  4. 这个时候再 DEBUG 难度增大了许多。

  大的不说,就说多自己声誉的影响吧。如果你的程序总会有这样那样的 BUG ,你得到收益会减少,即使你写了很多代码。

  其实最后一点也很重要;在我们面对一块代码的时候,什么方法都好办,但如果将这块代码防到庞大的系统中之后,简单的问题也难以被立即找出来。为了自己考虑,节省自己 DEBUG 的时候,我们应该让我们的程序尽量没有 BUG 。

  那么怎么样才能保证自己的代码没有 BUG 来?

  程序员必须克服一些自身的致命缺点才能够从根本上解决这个问题。那么这个问题是什么?前面我们已经提到,程序员对自己的代码都非常宽容,认为那是正确的没有问题。实际上这种想法比较正常,程序是通过程序员思考和设计之后才写出来,程序员不会将自己认为不正确的东西写到代码里,而到这个时候都一直假设程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序员在对待其他程序员时候的态度就很好,带着一种挑剔和学习的态度;但一旦对待自己的代码就很难这么做;这就是最致命的。程序员也必须对自己的代码带着挑剔和学习的态度;这个基础是假设自己的代码是错误的,然后需要做的是怎么样证明自己的代码是正确的。程序员自身可以在程序生成的每个阶段做这些工作:仔细的设计(这个时候画点时间是值得的,必须保证我们对自己的程序有清晰的轮廓后才能开始动手写)、编写代码时、单元测试(单元测试的重要性就不在赘婿了)、功能测试。

  仔细的设计:这个的仔细是说在程序员编写代码之前,其必须对代码的整个结构以及逻辑结构有明确的清晰的了解,只有这个时候才可以去写代码。这里没有谈到文档,但我说到了一定要清晰的思路,但清晰的思路不是每个人都可以在脑袋中直接形成的,很多人都是普通人,没有办法在脑袋瓜中把所有问题都想清楚,那么就记下来,特别对于复杂的逻辑。

  编写代码:对于没有把握的代码,例如:新设计的算法,最好保证其正确性。可以单独将这部分测试,这可以让代码模块化的同时又保证了代码的正确性。一句话:少量的代码保证质量还是比较简单的。

  单元测试:单元测试的重要性不在赘叙了,现在也有许多工具可以帮助程序员并减少工作量。

  功能测试:程序员保证自己代码质量的最后一关;为了做这样的工作我们可能必须写一些代码来测试,甚至是测试工作。使用大量的 CASE 来测试,以及错误的 CASE 。这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。

  如果你通过了以上的步骤都找不出你程序中有任何问题的话,那么我想你的程序应该足够健壮了。其实还有一点必须说明的就是:代码 REVIEW 。

  前面说道了程序员对待别人代码的态度是挑剔和学习的态度,所以让其他程序员来 REVIEW 你的代码也是检查程序有没有逻辑错误的很好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。

  作为一个好的程序员必须有以上的习惯,以及对待自己代码象孩子一样,我们要爱惜我们的代码,同时也要让代码走正确的路。

分享到:
评论

相关推荐

    bug定义和返工率计算统计方法

    返工率计算统计方法是指通过记录反复定义、程序员等级的划分、评定方法、bug 等级定义和 bug 认定方法等来计算返工率。返工率计算统计方法的目的是为了提高开发部的质量,减少错误的发生率。 质量提高方案的目的是...

    程序员笑话大全.docx

    4. 程序错误(bug):在程序员的世界里,bug是常见的问题,需要花费大量时间来查找和修复。 5. 工资与现实:程序员的薪资问题常常成为幽默的话题,这里暗示了程序员希望薪水能像传说中那样增长,但实际上可能并非...

    程序员表白程序 源码开放性 第一辑 不断更新(程序之爱系列第一辑)

    【程序员表白程序 源码开放性 第一辑 不断更新(程序之爱系列第一辑)】 本项目是一份特别的编程作品,旨在通过代码来传达情感,将程序员的浪漫与技术结合,形成了一种独特的表白方式。源码开放性的特点意味着任何...

    程序员工作经验

    - **编写可验证的代码**:在开发过程中,确保每一行代码都是可验证的,这对于保证程序的稳定性和可靠性至关重要。 - **调试技巧**:遇到bug时,应该仔细地验证每一步逻辑,确定问题的根本原因,并进行修复。 ### 2....

    永无bug.tar.tgz

    在IT行业中,编写无bug的代码是每个程序员追求的最高境界。"永无bug.tar.tgz"这个压缩包文件的命名暗示了它可能包含了一组精心设计和优化的程序源码,旨在确保程序的稳定性和可靠性。让我们深入探讨一下与"永无bug...

    程序员不应该再犯的五大编程错误

    因此,每次使用他人代码时,都应确保你能够完全理解每一行代码的功能,以保证代码的稳定性和可维护性。 2. 重复造轮子:初学者常常喜欢从零开始构建项目,而不利用现有的工具、库或框架。这不仅浪费时间,也限制了...

    偷懒的程序员

    ### 做一个会“偷懒”的程序员 ...综上所述,“偷懒”的程序员并不是指懒惰不负责,而是在保证工作质量和进度的前提下寻找更加高效的方法完成任务。只有这样才能够在日益竞争激烈的IT行业中立于不败之地。

    bug-流程1

    在IT行业中,"bug"一词是程序员和软件开发者们常用的术语,指的是软件、应用程序或系统中存在的错误、缺陷或不一致性,导致程序无法按照预期的方式运行。这些bug可能出现在代码的任何部分,从简单的语法错误到更复杂...

    Buddha Bless Never BUG

    Liunx有趣注释,linux环境下保证可用,./fozu 即可!!!!好玩的注释!!! 佛曰: 写字楼里写字间,写字间里程序员; 程序人员写程序,又拿程序换酒钱。 酒醒只在网上坐,酒醉还来网下眠; 酒醉酒醒日复日,网上...

    JAVA.BUG模式详解

    在Java编程中,"BUG模式"通常指的是程序员在编写代码时容易犯的一些常见错误或陷阱,这些错误可能导致程序运行不正常、性能下降甚至系统崩溃。理解并避免这些BUG模式是提高Java程序质量和效率的关键。本篇文章将深入...

    程序员必须课之工作流

    工作流是软件开发中不可或缺的一部分,它涉及到程序设计、项目管理、团队协作等多个方面。对于程序员来说,理解并掌握工作流能显著提升工作效率和代码质量。在这个“程序员必须课之工作流”教程中,我们将深入探讨...

    如何成为一个合格的C++程序员

    ### 如何成为一个合格的C++程序员 在当今的软件开发领域中,C++因其高效性和灵活性而备受青睐,尤其在游戏开发、系统编程、高性能计算等领域有着不可替代的地位。因此,成为一名优秀的C++程序员不仅是很多程序员的...

    2007程序员11月份考试标准答案

    程序员资格考试是针对计算机软件开发人员的一项专业技能认证,旨在评估应试者在软件工程、程序设计、数据结构、算法分析等方面的理论知识和实践能力。该考试通常分为两个部分:上午的基础知识选择题和下午的编程实践...

    程序员就是利用已有的工具来根据问题解决这些问题的人

    除了上述技能,程序员还需要不断学习和提升,阅读专业书籍如《计算机程序设计艺术》、《算法分析与设计》等,关注行业动态,如通过《sigplan公报》、《acm通讯》等学术期刊了解最新研究成果。 此外,拥有销售经历对...

    JUnit框架实现Java单元测试.pdf

    JUnit 框架是 Java 开发中的一种强大的开源单元测试框架,能够在 Java 开发过程中不断进行单元测试,提高程序质量,保证程序结果的正确运行。基于 JUnit 框架的 Java 单元测试最为成功,且广泛应用于软件开发中。 1...

    高效程序员的10个习惯,希望对你有所帮助

    高效程序员应当遵循契约编程的原则,确保子类能够替代父类而不改变程序的行为。这可以增强代码的稳定性和可预测性,减少bug的出现。 ### 9. 报告所有的异常 异常处理是软件开发中不可或缺的一部分。高效程序员应...

    cat2bug-jlog Java错误日志收集框架

    - **日志拦截器**:用于拦截应用程序中的日志输出,将其统一转换为cat2bug-jlog可处理的格式。 - **日志处理器**:负责解析、分类和存储日志信息,可能包括数据库存储、文件存储或云服务存储。 - **统计引擎**:实时...

    软件Bug详细记录表.doc

    在软件开发过程中,Bug 是一个不可避免的现象,它指的是软件中导致程序行为不符合预期的问题或缺陷。为了有效地管理和解决这些问题,我们需要使用一种系统化的方法来记录和跟踪这些Bug,这就是所谓的“软件Bug详细...

Global site tag (gtag.js) - Google Analytics