思维惯性引发的编程问题

为什么程序要了解思维的障碍,并要练习有意识的加以克服?这里举一个实际发生的问题。

写代码像写作一样,有时思如泉涌,顺着思路就把一段代码写得有模有样。

下面是一个状态码检查的例子(这种写法本身并不严谨,但这里要讨论是一个更为严重的问题.):

typedef enum {   STATE_DEFAULT,   STATE_A = 1,   STATE_B = 2,   STATE_C = 4} STATE_ITEM;

// state为获得的状态
 if (STATE_A & state)
 {
 }
 else if (STATE_B & state)
 {
 }
 else if (STATE_C & state)
 {
 }

这样很自然就有了一个模型STATE & state就可以判断是不是当前这个状态。顺着前面的思路,就有了:

 if (STATE_DEFAULT & state)
 {
   ...
 }

一切看起来都合情合理,程序员这时往往是很难会想到要回头检查的(至少我是这样)。于是一个Bug就在不久之后被发现了! 因为STATE_DEFAULT & state永远为0!

而解决方案有两个: 1.将设计用图形化的先表现出来,即使只是在纸上画一下。2.代码走查,特别注意边界条件,可以是自己回头查一下,也可以类似结对编程一样,请同伴帮助走查。但最起码的是,程序员要意识到这种问题的存在。这就是本文的目的。

转载请注明出处:http://blog.csdn.net/horkychen

时间: 2024-10-21 11:02:32

思维惯性引发的编程问题的相关文章

互联网思维改变了传统企业的思维惯性

如果说互联网思维改变了传统企业的思维惯性,那么微信则改变了传统企业的商业惯性.微信不仅成就了一批颇有影响力的自媒体人,还帮助了不少个人和企业创造了巨大价值.微信营销,微信生意风生水起,越来越多的传统企业想借助这张"移动互联网的船票"上岸. 在移动互联网席卷的浪潮之下,微信给传统企业带来了潜移默化的影响,不过这些影响主要集中在刚性市场和轻应用上(主要是吃喝玩乐购),而对于一些"重应用"目前还无法承载.笔者认为微信主要从这几个方面给传统企业带来了重大改变. 颠覆了传统企

函数式思维:为什么函数式编程越来越受关注

到目前为止,在本系列的每期文章中,我都说明了为什么理解函数式编程非常重要.但是,有些原因是在 多期文章中进行说明的,只有在综合思路的更大背景中,才可以完全了解这些原因.在本期文章中,我会探讨 函数式编程方兴未艾的所有原因,并综合前几期文章中的一些个人经验教训. 在计算机科学短短的发 展历史中,技术的主流有时会产生分支,包括实用分支和学术分支.20 世纪 90 年代的 4GL(第四代语言) 是一个实用分支,而函数式编程是来自学术界的一个示例.每隔一段时间,都会有一些分支加入主流,函数式 编程目前也

计算机可以这样玩—自我学习,自我思维,自我工作(编程)

              如果让计算机产生自我意识,那一定件很好玩的事情.               我在想,怎么让计算机产生自我意识和自我学习的思维能力呢,特别是在工业集群中的应用.               由这个问题,我们先问问人类是怎么自我产生意识的.               人类的自我意识主要是客观或主观环境刺激或引导而产生了自我神经思维能力的,对吧.                那么这样就很好理解了,机器同样可以产生自我意识和自我学习的过程.              

站长们,还在发帖吗?要想成功该转换思维了

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在正式开始本文之前,先简单介绍一下个人背景:06年就开始研究SEO.站长圈,最好的时候个人博客"SEO"关键词排到百度第二页.后来运营过门户网站.B2C商城,是一名在站长行当里摸爬滚打超过8年的老鸟,现在有自己运营的公司. 之所以说那么多,是想表明我不是什么新手,相反,混这个圈子的时间可能比大部分人都要长.下面所述说的内容,也谈不上指点,只是一名过来人的肺腑之言. 松松的博客我经常逛,诸如A5之类站长汇集的网站也基本每天都会关注.不知道大

我是如何用 10 天自学编程,改变一生的?

我是我,一个因兴趣入行的商学院毕业的程序员.最近有不少人,来问我,想学编程,但是又不知怎么开始.所以,我想把我8年前影响我一生的10天自学编程的经历,毫无保留的分享出来. 如果看到这标题,会让你觉得,读完一篇文章就能快速的掌握编程技术的话,这可能会让你失望,这里甚至没有一行代码. 我想分享的,是我最初自学编程的经历和心法. 1.决定 2009年初,一个潮湿.肮脏.背靠竹林的大学宿舍里,其中一张书桌,放着一台与环境格调不一致的纯白色的苹果Macbook电脑.她是我课余时间最好的朋友. 我读的是商学

scala泛函编程是怎样被选中的

      现在计算机技术发展现象是:无论硬件技术如何发展都满足不了软件需求:无论处理器变得能跑多快,都无法满足软件对计算能力的需要.按照摩尔定律(Moore's Law)处理器(CPU)每平方面积上包含的半导体晶体管数量每18个月将会增加一倍.发展到现在,所有CPU厂商都再也无法按照摩尔定律在一定面积上成倍增加半导体了,大家也都只能朝着增加CPU内核数量上努力了.多核CPU已然成为现代计算机技术发展趋势.现代软件对计算能力的需求暴增主要归咎于现代社会中数据应用的普及和泛滥.这种数据量级单凭增加

创业失败的十个思维误区 你是否注意到了

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 A5站长网导读:创业失败的案例数不胜数,有些创业公司有过自己辉煌的时期,但是最终还是因为一些原因走向失败,是什么原因或误区使得他们走向失败,下面介绍十个误区助你避免走入. 思维误区一:过度自信 这类创业者很多产品出身,对于自己的产品,都有着极高的自信.谈到竞争对手不屑一顾,从来不把同类的产品放在眼里,问到优势在哪的时候,认为最大的优势在于自己

关于优秀思维的品质思考

很显然,在社会中,人的思维水平是存在明显的差异.而根据我的观察,多数人的思维能力都是在一个较初级的水平徘徊,并而且这种状况并不会因为人拿到一个高学历或者工作年限的增长而发生自动的改变,除非是对自己思维能力的反思形成了一种自觉的意识. 其实,停留在初级的思维水平应该是一件舒服的事,因为你可以不假思索地接受权威或者流行的观点,还可以借用已有的成功案例来解决当下你面对的问题,可以通过有限的信息来迅速做出判断甚至是做出预测.这就好像你坐上了一列闹哄哄的旅游大巴,你在这辆大巴上可以和大家齐声歌唱,可以嗑瓜

你的团队需要这6种思维模式

作为老板,你是否有时会感到一种脑力上的孤独感?对我来说,我需要聪明人在我周围,激发我的灵感.聪明的主意不会在独处中产生,成功的企业需要一支强有力的协作团队. 那么企业需要 什么样的聪明人呢?我发现,和跟自己的http://www.aliyun.com/zixun/aggregation/9289.html">思维模式完全不一致的人交流收获最大.许多思维迥异的人在一起,就会结出丰硕的果实.下面是我总是在团队中 寻找的6种思维模式. 1梦想模式.这种思维模式总是在想象未来和各种可能性.他们的思