`
庄表伟
  • 浏览: 1152010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何写出没有bug的程序?

阅读更多
  我写了一篇blog叫做《招人不难》,很多朋友很赞同,也有的朋友不同意我的意见,他们很怀疑:“有bug的一律不要?没有BUG的代码是不存在的...blabla”
 
  正好今天又看到一篇转贴的笑话,叫做《【转】从一个笑话看软件开发管理》,大意是,程序员交出了自以为没有bug的代码,然后一切都变得越来越糟糕,而程序员总是会交出自以为没有bug的代码。
 
  我们今天就来谈谈,一个程序员,什么时候可以交出自己的代码,并且可以自豪的对别人说:“我的代码里面,没有bug!”。
 
  先说传统的做法,一个负责的程序员,应该在交出代码之前,自己跑好多次自己的代码,左看右看,上看下看。直到交出去的时候,没有一个人能够发现其中的问题。这样的能力一般只有天才才能具备,我以前遇到过一个。但是,如果我企图以这样的标准来招人的话,那就是在发疯,怎么还敢说“招人不难”?
 
  说说可行的办法吧。一个程序员如果足够的谦虚,时时想证明自己可能犯错,即将犯错,或者已经犯错。那么他就会尽量写出足够多的TestCase,以便打消自己的疑虑。直到所有的测试用例全部通过,屏幕上显示出美丽的绿色长条,他才能确信,自己的代码没有bug。
 
  所以,我的判断标准,也很简单。如果寄给我的代码,没有附带测试用例,我就自己运行他的程序,随意的乱找,找到一个我认为是bug的,那就是有bug了。如果寄给我的代码,附带了足够的测试用例,我只要Run一次,看到绿条,这一关就算是过了。~~~很简单吧。
 
  也许有人会说,那如果他的测试用例很简单呢?岂不是不能说明什么问题?怎么不能说明问题呢?首先可以说明:这是一个会写测试用例的程序员!其次,我会看看他的测试用例的代码,大概覆盖了多少的功能特性。当然,这是更进一步的能力判断。但是至少,他的代码已经达成了他自己的设计了呀。
 
  所以:“有bug的一律不要”,意味着,你最好能够自己证明自己没有bug,否则,我如果找到一个bug,你就没戏了。
分享到:
评论

相关推荐

    写出高效的Bug测试报告的9点建议.zip程序开发文档软件开发文技术档下载

    写出高效的Bug测试报告的9点建议.zip程序开发文档软件开发文技术档下载写出高效的Bug测试报告的9点建议.zip程序开发文档软件开发文技术档下载写出高效的Bug测试报告的9点建议.zip程序开发文档软件开发文技术档下载写...

    90%程序员写不出无BUG的二分查找程序?.rar

    为了写出无bug的二分查找程序,我们需要对算法的每一步都进行细致的思考和严谨的代码实现。在编写过程中,可以采用以下策略: 1. **清晰定义边界条件**:明确搜索范围的初始值(通常是0和数组长度-1)以及退出循环...

    浅析如何查找单片机程序BUG.pdf

    例如,在一个LED数码管显示错误的程序中,如果将循环体写错,可以通过故意将正确的条件改回错误的形式,如果出现了预期的错误,那么就说明找到了BUG的确切位置。 具体例子分析: 作者杨伟提供的例子分析了如何查找...

    教你如何写BUG票-Bug Report Techniques

    例如,导致程序崩溃的Bug通常优先级和严重性较高。 7. **关联信息**:如果可能,提及与该Bug相关的其他问题、已知限制或者以前的修改。这有助于开发者理解问题的背景。 8. **重现频率**:说明该问题的再现频率,是...

    Bug发现提交报告

    - 明确写出在正确执行操作后,预期应该看到的结果是什么。这有助于开发人员了解期望的功能行为。 - 同时,指出实际出现的结果,这样可以更直观地展现Bug的影响。 4. **Bug发现人的身份**: - 包含Bug发现人的...

    bug记录内容,填写模板,通知单描述

    本文将讨论如何写出高质量的bug单,包括为什么要写bug单、发现bug后应该做什么、摘要、措辞、重现的步骤、测试数据、屏幕截图、严重级/优先级、日志等几个方面。 为什么要写bug单?当我们发现bug后,需要通知开发...

    低级bug耗费12小时Fix

    此外,由于没有正确检查文件打开是否成功,导致持有无效文件描述符进行写操作时触发了段错误(Segmentation fault)。 #### 排除过程 1. **观察崩溃信息**: - 观察程序运行时打印的信息可以发现,崩溃发生在调用...

    自己写的一个锁屏程序(有些小bug) mfc

    标题中的“自己写的一个锁屏程序(有些小bug) mfc”表明这是一个使用MFC(Microsoft Foundation Classes)框架编写的个人锁屏应用。MFC是微软提供的一种C++类库,用于简化Windows应用程序开发,尤其是GUI(图形用户...

    JAVA代码BUG分析

    BUG通常是指程序中的错误、缺陷或不正常的行为,它可能导致程序崩溃、数据丢失,甚至引发安全问题。在Java编程中,BUG的来源多种多样,包括语法错误、逻辑错误、运行时异常等。 《Java.Bug模式详解.pdf》可能会涵盖...

    如何使用FreeSWITCH的media-bug模块

    本文将详细讲解如何使用FreeSWITCH的media_bug模块API来开发自己的应用程序,实现媒体资源的导出和处理。 一、媒体实时质检的概念 话务实时质检是指在通话过程中实时捕获并处理通信双方的语音数据。这些数据经过...

    BUG库管理规范BUG库管理规范

    * 开发人员:分析 BUG,写出问题原因,修改 BUG;实行 BUG 优先原则。 * 测试人员:不参与问题的优先级的定位,只用 BUG 级别反映 BUG 的严重程度;验证 BUG 是否已被解决。 * 测试主管/经理:审核测试人员提交的 ...

    c语言写的计算器小程序

    【标题】:“C语言写的计算器小程序” 这个计算器小程序是针对C语言初学者设计的一个实践项目。C语言是一种底层、高效且灵活的编程语言,广泛应用于系统编程、嵌入式开发等领域。通过编写这样的计算器程序,初学者...

    从零开始重新学习 Python 3:Python 错误处理 - 程序崩溃怎么办?教你写出“坚不可摧”的代码!

    程序 bug 频出,崩溃到怀疑人生?掌握 Python 错误处理机制, 让你的代码更稳健!

    在修改代码时存在的bug

    10. **异常处理**:忽视异常处理可能导致程序在遇到问题时突然终止,而不是优雅地处理错误并给出反馈。 为了定位和修复这些bug,开发者需要熟练掌握调试技巧,使用如GDB这样的调试工具,或者集成开发环境(IDE)的...

    NO-BUG 个人推荐

    根据给定文件的信息,我们可以提炼出以下关于C语言编程中常见的错误及调试技巧的知识点: ### 1. 什么是Bug? 在程序开发过程中,Bug通常指的是程序中的逻辑或语法错误,这些错误会导致程序运行异常或者无法达到...

    自己写的程序互相分析一下

    9. **编程语言特性**:不同的编程语言有其特定的特性和陷阱,理解并熟练掌握所用语言的语法和特性,能写出更高效的代码。 10. **持续集成/持续部署(CI/CD)**:在现代软件开发流程中,CI/CD确保代码更改能够快速、...

    记一次新手都不会写出来的bug,我给了自己一巴掌.pdf

    没有给出具体的出现环境,但考虑到bug的复杂性,可以推测它可能是在某个特定的运行环境中触发的,比如特定版本的操作系统、编译器或是依赖库等。 #### 3. **影响范围** 这类bug的影响范围可能较小,只在某些特定的...

    Writing+Bug-Free+C+Code 源码

    这个项目旨在教导开发者如何避免常见的编程陷阱,写出更稳定、更可靠的C程序。以下是对源码文件及其可能涉及的知识点的详细解析: 1. **make-c8.bat 和 make-c32.bat**:这些是批处理文件,通常用于自动化构建过程...

    JAVA.BUG模式详解

    通过理解并避免这些BUG模式,Java开发者可以编写出更健壮、高效的应用程序。定期审查代码、进行性能分析以及持续学习Java最佳实践,都是优化编程不可或缺的部分。《JAVA.BUG模式详解》这本书将深入讲解这些主题,...

Global site tag (gtag.js) - Google Analytics