关于程序猿怎样降低程序Bug的若干建议
毫无疑问,程序猿是善于思考问题的一族。
一个程序的编写都是通过:思考、设计、编写、调试、測试以及执行这些主要的阶段。
但大部分程序猿都有一个问题就是不太愿意測试自己的代码。
他们草草的调式完毕以后就觉得工作结束,測试那是測试人员的工作。
依照理论上。假设代码存在问题。那么測试人员和终于的用户肯定能够发现这些 BUG ,而等待哪个时候再返回来查找问题究竟错在什么地方确实代价不小,其代价有:
1. 影响了程序猿自己的声誉
2. 影响了产品的质量
3. 影响了客户的信任度
4. 这个时候再 DEBUG 难度增大了很多。
大的不说,就说多自己声誉的影响吧。假设你的程序总会有这样那样的 BUG ,你得到收益会降低,即使你写了非常多代码。
事实上最后一点也非常重要;在我们面对一块代码的时候。什么方法都好办,但假设将这块代码防到庞大的系统中之后。简单的问题也难以被马上找出来。为了自己考虑,节省自己 DEBUG 的时候,我们应该让我们的程序尽量没有 BUG 。
那么怎么样才干保证自己的代码没有 BUG 来?
程序猿必须克服一些自身的致命缺点才可以从根本上解决问题。
那么这个问题是什么?前面我们已经提到。程序猿对自己的代码都非常宽容,觉得那是正确的没有问题。实际上这样的想法比較正常,程序是通过程序猿思考和设计之后才写出来,程序猿不会将自己觉得不对的东西写到代码里,而到这个时候都一直如果程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序猿在对待其它程序猿时候的态度就非常好,带着一种挑剔和学习的态度;但一旦对待自己的代码就非常难这么做;这就是最致命的。程序猿也必须对自己的代码带着挑剔和学习的态度;这个基础是如果自己的代码是错误的,然后须要做的是怎么样证明自己的代码是正确的。程序猿自身可以在程序生成的每一个阶段做这些工作:
细致的设计、编写代码时、单元測试(重要)、功能測试。
1.细致的设计:这个的细致是说在程序猿编写代码之前,其必须对代码的整个结构以及逻辑结构有明白的清晰的了解,仅仅有这个时候才干够去写代码。这里没有谈到文档。但我说到了一定要清晰的思路,但清晰的思路不是每一个人都能够在脑袋中直接形成的,非常多人都是普通人,没有办法在脑袋瓜中把全部问题都想清晰,那么就记下来,特别对于复杂的逻辑(这个时候画点时间是值得的。必须保证我们对自己的程序有清晰的轮廓后才干開始动手写)。
2.编写代码:对于没有把握的代码。比如:新设计的算法,最好保证其正确性。
能够单独将这部分測试,这能够让代码模块化的同一时候又保证了代码的正确性。一句话:少量的代码保证质量还是比較简单的。
3.单元測试:单元測试的重要性不在赘叙了,如今也有很多工具能够帮助程序猿并降低工作量。
4.功能測试:程序猿保证自己代码质量的最后一关;为了做这种工作我们可能必须写一些代码来測试,甚至是測试工作。
使用大量的 CASE 来測试,以及错误的 CASE 。这里和測试人员的測试不同之处在于:仍然让程序猿的注意力放在其自己的代码范围内。减小了排错的难度。
*.假设你通过了以上的步骤都找不出你程序中有不论什么问题的话。那么我想你的程序可能须要的不仅仅是REVIEW了,你可能须要抛弃它,依照之前的思路或者换个思路又一次来一遍,这个过程想想也许非常麻烦。事实上当你真的静下心来去做时,你会发现你得到的不仅是一个没有bug的程序。很多其它的是你根本意想不到的收获。并且这次的代码写的远比第一遍更顺利,更快。更健壮。
it's unbelievable.
前面说道了程序猿对待别人代码的态度是挑剔和学习的态度。所以让其它程序猿来 REVIEW 你的代码也是检查程序有没有逻辑错误的非常好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。
作为一个好的程序猿必须有以上的习惯。以及对待自己代码象孩子一样。我们要爱惜我们的代码。同一时候也要让代码走正确的路。
关于程序猿怎样降低程序Bug的若干建议的更多相关文章
- 漫谈程序猿系列:无BUG不生活
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZm9ydW9r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- 辛星跟您玩转vim第三节之程序猿特须要的移动方式
前面第二节我首先值得一提的是,我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载.假设左边的下载地址挂掉了.也能够自行在浏览器以下输入例如以下地址进行下载:h ...
- 程序猿制造Bug的根本原因竟然是....
传说中: 「杀一个程序猿不需要用枪,改三次需求就可以了.」 而且, 「这竟然也是程序猿制造Bug的根本原因....」 ↓↓↓↓↓↓↓ #/原始需求/# 你去饭店,坐下来. “服务员,给我来份宫保鸡 ...
- 程序bug导致了天大的损失,要枪毙程序猿吗?[ZZ]
来自猫扑:程序bug导致了天大的损失,要枪毙程序猿吗? 0 引言 年会上Review 源代码算什么? 法庭上 Review code 才带劲..... 2015年9月3日,随着东京最高法院驳回瑞穗证券 ...
- 论 BUG调试与(程序猿)初学者
作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...
- 怎样跟程序猿谈一场没有Bug的恋爱
<iframe width="580" height="90" align="center,center" id="cpro ...
- 漫谈程序猿系列:她发现了一个Bug……
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZm9ydW9r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- 从此走上一条iOS程序猿不归路。。。
新的城市,新的生活!前不久刚刚结束了苦逼的面试找工作之旅,期间也小有收货,如今正处年底工作闲暇之余,将前一阵子陆陆续续的总结整理了一下,本人菜鸟程序猿一只,水平有限,本文总结的知识不算深入,比较浅显, ...
- 程序猿职业生涯中的 Norris 常数
我的朋友Clift Norris发现了一个基本常数.我称之为Norris常数,一个未经培训的程序猿在他或她遇到瓶颈之前能写出的平均代码量.Clift预计这个值是1500行. 超过这个数以后,代码会变得 ...
随机推荐
- POJ 3415 Max Sum of Max-K-sub-sequence (线段树+dp思想)
Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- 【iOS】苹果,百度Map定位使用与总结
iOS中使用较多的3款地图,google地图.百度地图.苹果自带地图(高德).当中苹果自带地图在中国使用的是高德的数据.苹果在iOS 6之后放弃了使用谷歌地图,而改用自家的地图.在国内使用的较多的就是 ...
- java访问mysql方法数据库
1.下载界面包mysql-connector-java-5.0.8-bin.jar 下载链接 2.程序 (1)载入驱动 (2)编程连接操作 (3)返回结果处理 编程演示样例 import java.s ...
- AccountManager使用教程
API解读 这个类给用户提供了集中注冊账号的接口.用户仅仅要输入一次账户password后,就能够訪问internet资源. 不同的在线服务用不同的方式管理用户,所以account manager 为 ...
- cocos2dx-3.0(1)------win7 32位android环境搭建
參照链接http://blog.csdn.net/wonengxing/article/details/23601359 ----我的生活,我的点点滴滴!! 一. Android工具安装 1. 安装J ...
- html5css3杂记
最新版本号的safari.chrome.firefox以及opera支持某些html5特性.ie9将支持某些html5特性. html5提供了展现视频的标准<video>支持ogg及mpe ...
- 【Swift】—— 中国课程
Apple宣布更换oc武器语言 Swift ,在牛叉的中国开发者社区9几天之内,以完成.这是福音许多中国的开发商啊,兴奋的发现之后,写存储在日志,马上防止忘记: GitHub开源项目:<The ...
- poj3268(最短路)
题目连接:http://poj.org/problem?id=3268 题意:给出n个点和m条单向边,现在所有牛要到牛x那里去参加聚会,并且所有牛参加聚会后还要回来,给你牛x,除了牛x之外的牛,他们都 ...
- hdu4341(分组背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4341 题意:一个人在原点(0,0)抓金子,每块金子有一个获得需要的时间t和价值v.而且有的金子可能在一 ...
- Java 小样例:图书馆课程设计(Java 8 版)
用 Java 模拟一个图书馆.包含创建图书.创建读者.借书.还书.列出全部图书.列出全部读者.列出已借出的图书.列出过期未还的图书等功能. 每一个读者最多仅仅能借 3 本书,每一个书最多仅仅能借 3 ...