为什么程序要了解思维的障碍,并要练习有意识的加以克服?这里举一个实际发生的问题。
写代码像写作一样,有时思如泉涌,顺着思路就把一段代码写得有模有样。
下面是一个状态码检查的例子(这种写法本身并不严谨,但这里要讨论是一个更为严重的问题.):
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

思维惯性引发的编程问题相关推荐

  1. 艾永亮:企业未来的创新方向,跳出思维惯性是打造超级产品的基础

    不知道从什么时候开始,许多企业管理者对"创新"这两个字感到乏力,开始思考为什么要通过创新来打造超级产品这个问题,于是有了本文的总结. 在我们日常生活中都会出现一些关于"应 ...

  2. 匹马行天下之思维决定高度篇——编程“价”更高

    匹马行天下之思维决定高度篇--编程"价"更高 ----也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好 ...

  3. 思维课和少儿编程的区别

    思维课和少儿编程的区别?家长们在给孩子选择一些能够提升孩子能力的课程的时候,可以说是十分的用心.就拿现在很多的家长想要孩子去学习少儿编程的课程来说,他们对于思维课和少儿编程的区别并不是很清楚,今天我们 ...

  4. 日记之简单思考:江郎才尽(人尽其才)与思维惯性、思维干扰20121210

    原由: 今天在工作过程中,针对产品功能总觉得缺憾很多,向领导报告了7个缺憾.而解决的办法无外乎原来被否定的复杂解决方案(方向上转变很大).搞得领导相当之郁闷. 内容: 主要是关于一个多路输出产品的测试 ...

  5. 计算思维与计算机科学为代表,21世纪核心能力:计算思维(不是编程)

    关于计算思维的一个常见误解是"计算思维与编程是同一件事情".这不太准确.虽然编程是教授计算思维的常用工具,但计算思维却不仅仅是编程,而是在编程之前,用于理解问题.分析问题和制定解决 ...

  6. python三维建模_3D One 2.5引爆新思维,用趣味编程来实现3D建模!

    原标题:3D One 2.5引爆新思维,用趣味编程来实现3D建模! 3D One2.5正式版终于和大家见面啦!新版本全新推出趣味编程,让3D模型也能通过编程逻辑来完成,丰富你的创新想象力.这给有计划开 ...

  7. 基于Django中间件引发的编程思想

    文章目录 基于Django中间件引发的编程思想(==重点==) importlib模块使用 编程思想 基于Django中间件引发的编程思想(重点) importlib模块使用 能够以字符串的形式导入模 ...

  8. 用计算机语言完成游戏的计算,以计算思维为导向的编程教育游戏的设计

    刘立云 沈航冉 "计算思维"是运用计算机科学的基础概念进行问题求解.系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动,能给与人思考问题的正确方法,对构建算法有着重要的 ...

  9. 【计算思维题】少儿编程 蓝桥杯青少组计算思维题真题及解析第2套

    少儿编程 蓝桥杯青少组计算思维题真题及解析第2套 1.天平的左右两端分别放有一些砝码,如下图所示,右边的砝码不变,从左边最多拿走几个砝码,可以使天平左右两边平衡 A.1 B.2 C.3 D.4 答案: ...

最新文章

  1. python好用-Python有哪些常见的、好用的爬虫框架?
  2. SAP 财务模块 FI-TV 差旅管理
  3. 02_3中方式的反射,通过Class.forName获得Class对象,通过类.class获得字节码对象,通过类实例.getClass()的方式获得Class对象
  4. Excel有用的函数(ISBLANK,IF,LEFT,VALUE)
  5. hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识
  6. 详细介绍 Qt Creator 快捷捷应用
  7. Mysql常用分组聚合函数(统计行的数量、最大值、最小值、平均值、求和)
  8. 帐户分类 密码强度
  9. pyCharm最新2017激活
  10. iPhone 13高端版所需120Hz刷新率屏幕或将由三星独家供应
  11. h5 input 阴影_html5中input表单加边框,阴影效果
  12. Spark Client启动原理探索
  13. 【手写数字识别】基于matlab Fisher分类手写数字识别 【含Matlab源码 505期】
  14. 设备唯一标志的解决方案
  15. 2021Java学习路线总结
  16. PMP项目管理是什么意思?
  17. 软件功能测试概论(课堂练习1)
  18. K8S学习之storageclass
  19. 这些是 Python 官方推荐的最好书籍(推荐)
  20. 【智能优化算法】基于粒子群结合NSGA2算法求解多目标优化问题附Matlab代码

热门文章

  1. 医疗领域Bert模型比较
  2. Android模块化与ARouter框架
  3. 发现微型计算机染有病毒后,阿基米德蜗杆传动中,规定 () 上的参数为标准值。...
  4. 阿里云服务器报警-进程异常行为-访问恶意下载源
  5. 计算机视觉、机器学习、自然语言处理、机器人技术、语音识别等人工智能技术的应用
  6. 计算机行业未来的规划模板,计算机专业大学生职业生涯规划书模板和范文
  7. dreamweaver作业静态HTML网页设计——动漫主题:天宝伏妖录(7页) 学生动漫网页设计作品静态HTML网页模板源码
  8. 十二、Gateway新一代网关
  9. 爱心树表白动画源码,word转pdf源码,websocket源码
  10. 简便的电池电量测试设计方法