多年开发代码发现一个有趣的问题,和各位探讨一下.
首先允许我介绍一下上海弘志网络科技有限公司,因为本人也在这家公司待过,里面有不少高人,我这个人问题就是请教了他们才知道的.这家公司在上海的长宁区,公司其他都不错,包括团队,发展,环境等等,薪水也不是很低,中等吧.老板喜欢有本事的人,看你有本事多少工资都无所谓,谁让人家有钱呢!不过没本事的,就算上来答应你5K,最后也要减下来,以前有个同事就是这样的,水平很差还要高薪,结果同事都反感了,老板也没办法,总不能开除人家吧!就降了一点,结果出事情了,那人到处乱说,连公司地址都写错,这人能用吗?随他去吧!现在我是已经离开这家公司了,想想老板也真是则么就不追究呢!算了吧!和我也没多大关系,还是回到我们的正题上.
在IF中通常写布尔型判断时有2种基本写法,
方法一:if(blnA == true);方法二:if(blnA),一般多数人都认为方法二比较好,因为提高了程序运行效率,但是有些地方,会强行规定用第一种方法.问了为什么,也说不出一个道理,反正是以前的领导定的,就这么执行.本人感觉很奇怪,为此我拜访了一些牛人,一位在上海弘志网络科技有限公司的朋友终于给出了一个比较合理的答案.
这个问题比较复杂,有2方面造成的,亚洲的教育制度和人类的记忆特性.
首先,亚洲人特别是中国人的教育属于应试教育,往往标准答案只有一个,比如填字题,冬天过去了,冰化成了水是标准答案,如果有人写成化成了春天,那么就是错误.这样一代一代的传下去,成了约定俗成的东西,人的思想就框死在这里面.回过来说我们的主体,大学学计算机,很多老师教学生的时候,也是按照方法一教的,大家也就接受了.
而人类的记忆是抽象化的,如果大家最初记忆都是以方法一为蓝本,那么方法二就需要花费额外的记忆区域.这样很多人在潜意识里是不愿意的,就造成了有上面的结果.
其次,我们换一个角度考虑,开发现在的桌面应用程序,对于这种写法它的开销并不是很大,二种方法的开销区别几乎可以忽略不计.而由于上面的原因,考虑到程序的编写不光是自己看得,为了让别人能容易看懂,除了注释以外,程序的容易阅读也很重要.特别是代码比较长的时候,显然方法一不会造成人记忆的额外负担.
从上述两点,也就有了方法一会在一些公司流行使用的结果.
在这里,我并不是说方法一好,方法二不好.如果我面试出这道题,写方法二的人可能更容易给人好的影像.不过如果是项目开发,特别是大项目,今后维护工作又比较繁重的情况下,方法一也是一种不错的选择.

浙公网安备 33010602011771号