原文:http://javer.iteye.com/blog/187691
毫无疑问,程序员是善于思考问题的一族。一个程序的编写都是通过:思考、设计、编写、调试、测试以及运行这些基本的阶段。但大部分程序员都有一个问题就是不太愿意测试自己的代码。他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作。
按照理论上,如果代码存在问题,那么测试人员和最终的用户肯定可以发现这些 BUG ,而等待哪个时候再返回来查找问题到底错在什么地方确实代价不小,其代价有:
1. 影响了程序员自己的声誉
2. 影响了产品的质量
3. 影响了客户的信任度
4. 这个时候再 DEBUG 难度增大了许多。
大的不说,就说多自己声誉的影响吧。如果你的程序总会有这样那样的 BUG ,你得到收益会减少,即使你写了很多代码。
其实最后一点也很重要;在我们面对一块代码的时候,什么方法都好办,但如果将这块代码防到庞大的系统中之后,简单的问题也难以被立即找出来。为了自己考虑,节省自己 DEBUG 的时候,我们应该让我们的程序尽量没有 BUG 。
那么怎么样才能保证自己的代码没有 BUG 来?
程序员必须克服一些自身的致命缺点才能够从根本上解决这个问题。那么这个问题是什么?前面我们已经提到,程序员对自己的代码都非常宽容,认为那是正确的没有问题。实际上这种想法比较正常,程序是通过程序员思考和设计之后才写出来,程序员不会将自己认为不正确的东西写到代码里,而到这个时候都一直假设程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序员在对待其他程序员时候的态度就很好,带着一种挑剔和学习的态度;但一旦对待自己的代码就很难这么做;这就是最致命的。程序员也必须对自己的代码带着挑剔和学习的态度;这个基础是假设自己的代码是错误的,然后需要做的是怎么样证明自己的代码是正确的。程序员自身可以在程序生成的每个阶段做这些工作:仔细的设计(这个时候画点时间是值得的,必须保证我们对自己的程序有清晰的轮廓后才能开始动手写)、编写代码时、单元测试(单元测试的重要性就不在赘婿了)、功能测试。
仔细的设计:这个的仔细是说在程序员编写代码之前,其必须对代码的整个结构以及逻辑结构有明确的清晰的了解,只有这个时候才可以去写代码。这里没有谈到文档,但我说到了一定要清晰的思路,但清晰的思路不是每个人都可以在脑袋中直接形成的,很多人都是普通人,没有办法在脑袋瓜中把所有问题都想清楚,那么就记下来,特别对于复杂的逻辑。
编写代码:对于没有把握的代码,例如:新设计的算法,最好保证其正确性。可以单独将这部分测试,这可以让代码模块化的同时又保证了代码的正确性。一句话:少量的代码保证质量还是比较简单的。
单元测试:单元测试的重要性不在赘叙了,现在也有许多工具可以帮助程序员并减少工作量。
功能测试:程序员保证自己代码质量的最后一关;为了做这样的工作我们可能必须写一些代码来测试,甚至是测试工作。使用大量的 CASE 来测试,以及错误的 CASE 。这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。
如果你通过了以上的步骤都找不出你程序中有任何问题的话,那么我想你的程序应该足够健壮了。其实还有一点必须说明的就是:代码 REVIEW 。
前面说道了程序员对待别人代码的态度是挑剔和学习的态度,所以让其他程序员来 REVIEW 你的代码也是检查程序有没有逻辑错误的很好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。
作为一个好的程序员必须有以上的习惯,以及对待自己代码象孩子一样,我们要爱惜我们的代码,同时也要让代码走正确的路。
分享到:
相关推荐
在IT行业中,编程不仅仅是工作,有时它也可以成为表达情感的工具。"程序员表白专用程序"就是一个这样的创意项目,它利用...通过这个项目,程序员可以用自己的技术才华,创造出独一无二的表白体验,给心爱的人带来惊喜。
《程序员级高级程序员级程序设计》是一门深入探讨高级编程技术的课程,旨在提升程序员的技能水平,使之能够更高效、更智能地进行软件开发。本课程覆盖了多个关键的知识点,包括但不限于算法优化、数据结构、并发编程...
程序员表白专用程序源码 (demo)程序员表白专用程序源码 (demo)程序员表白专用程序源码 (demo)程序员表白专用程序源码 (demo)程序员表白专用程序源码 (demo)程序员表白专用程序源码 (demo)程序员表白专用...
在众多富有创意的程序应用之中,“程序员浪漫之表白程序”以其独特的魅力,成为技术与情感结合的典范。这个程序不仅仅是一个工具,更是一种情感表达的艺术。 让我们来探索一下“程序员浪漫之表白程序”的魅力所在。...
返工率计算统计方法是指通过记录反复定义、程序员等级的划分、评定方法、bug 等级定义和 bug 认定方法等来计算返工率。返工率计算统计方法的目的是为了提高开发部的质量,减少错误的发生率。 质量提高方案的目的是...
3. **统计报告**:程序可能记录用户练习的数据,如输入速度、正确率、进步情况等,以便用户追踪自己的成长。 4. **自定义设置**:允许用户选择特定的编程语言环境,定制练习内容,如只练习特定的符号或关键词。 5. *...
《Java Web程序设计任务教程》是一本专注于Java Web开发实践的书籍,由中国工信出版社出版,由传智播客旗下的高端教育品牌“黑马程序员”精心编著。这本书旨在帮助读者掌握Java Web开发的核心技术和实践方法,通过一...
这个“程序员高级程序员程序设计辅助理解软件”压缩包文件,显然是为那些寻求晋升或者增强自身技能的软件开发人员准备的学习资源。其中包含的知识点涵盖了多个方面,特别强调了数据结构这一核心编程概念,同时也与...
即使是有多年经验的单片机程序员,也很难一次通过测试就编写出完全无BUG的程序。 BUG的分类: 单片机程序BUG可分为两种类型,一种是显而易见的BUG,如保险管烧毁炸裂等;另一种是条件性BUG,即只有在特定条件下才会...
C程序员参考手册_程序设计.rarC程序员参考手册_程序设计.rarC程序员参考手册_程序设计.rarC程序员参考手册_程序设计.rarC程序员参考手册_程序设计.rarC程序员参考手册_程序设计.rar
我认为是程序员必读的一本书。 本书是Brian W. Kernighan和Rob Pike...本书值得每个梦想并努力使自己成为优秀程序员的人参考,值得每个计算机专业的学生和计算机工作者阅读,也可作为程序设计高级课程的教材或参考书。
layui ajax 没有node.js功能都可用,高度类似。 黑马刘龙彬老师主讲的大事件项目,整体看完,给刘老师点个赞,讲的非常细致,开发流程清晰,涉及的知识点也很精准。另外黑马还为这个项目提供了在线接口文档,并且将...
MFC程序员的WTL指南+程序+示例
那么,什么样的人适合成为程序员呢?程序员应具备哪些素质?同时,又有哪些禁忌需要避免呢? 首先,程序员需要耐得住寂寞。编程工作往往需要长时间集中精力,沉浸在代码的世界里,这需要一种静心专注的能力。静不下...
在这个特别的七夕节,程序员们可以通过自己的技术才能,为心爱的人送上一份别出心裁的礼物。本文将深入探讨如何使用Java编程语言来创建一个小程序,以此为背景,来解析这个“程序员七夕送女友的小程序”的相关知识点...
C++黑马程序员学习资料,附赠《InterviewGuide第四版By阿秀》、《LeetCode刷题手册》、《背包问题九讲》、《算法图解》pdf版本,三个基础课程文档手册及三个实验项目,由简到繁分别为《通讯录管理系统》、《职工管理...
在软件行业中,程序员和程序经理的角色至关重要,他们是软件开发的核心力量。软件工程的成功不仅依赖于技术能力,还需要有效的管理。管理并非单纯的控制,而是要激发团队潜力,共同达成目标,让每个成员都能在工作中...