英文中名词会有一个“复数”的概念,英文为“Plural”,其复数为“plurals”(真是复数的复数呀!),例如”boy”的复数形式为“boys”,并且由于拼写等等原因很多单词的复数并不是简单的加一个“s”了事,这是每个学过英文的人都知道的事!给我们这些本来撑握方块字的人学习英文的人带来很多的麻烦,必须去记忆各种单词的复数形式,这也算是复数的罪孽了!而中文并没有所谓“复数”的概念,如果要表示复数这个意义,我们一般都加一个“们”字就行了,如“男孩”的复数意义为“男孩们”。然而,“男孩”这个单词本身就会指一类人,对于中文来说根本无需考虑这个单词的单复数意义。
如果要改革语言,也许我们可以用中文的思想把英文的复数给“革命”了,但这是不可能的,因为语言就象我们使用的“键盘”一样,虽然它有很多不足之处,但已经成形,已经成势,就象作为世界较为通用的语言,人造的“世界语”就始终不敌“英语”。若真要去改革那只昐“上帝”能重新造一遍这个世界了。然而在这个世界里现在很多人都在使用一种叫“编程语言”的东西。就象我使用C#,她使用Java一样。在使用这些语言的时候我们都会跟各种名词打交道,跟名词打交道时我们就会用到“复数”概念!
这是我在浙江大学写软件工程硕士论文的核心内容,虽然答辨时那些砖家老师叫我要把这些内容要去掉,但我坚持把它写在里面,内容如下: 基于本体的软件设
如果您使用Visual Studio 2010并且使用.net framework 4.0,则在项目属性中可以看到Code Contracts这个选项,Code Contracts源自于Design By Contract,由于Desing By Contract已经被Eiffel注册,因此我想微软就换个名称叫Code Contracts,而其思想却来自于Deisgn By Contract,我今天终于找到了这本七年前由人民邮电出版社出版的《Desing By Contract 原则和实践》书。
在多年前面向对象大师Ivar Jacoboson访华时曾对《程序员》杂志所说“我认为 Bertrand Meyer的方向“Design by Conract”是正确的方向,我们都会沿着他的足迹前进,我相信,大型软件厂商(微软,IBM,当然还有Rational)都不会对Bertrand Meyer的成就坐视不理 。
图灵奖得主Tony Hoare,在这个Infoq办的大会上,在主题“Historically bad ideas”,它讲了一个主题“Null References: The Billion Dollar Mistake”,详细视频参见: http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
他在讲演摘要中是这样写的:
I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.
摘自易经系辞:
乾以易知,坤以简能。
易则易知,简则易从。
易知则有亲,易从则有功。
有亲则可久,有功则可大。
可久则贤人之德,可大则贤人之业。
易简而天下之理得矣。
天下之理得,而成位乎其中矣。
细读了,深觉《易经》“乾”、“坤”简易之道实乃软件开发之王道,如果能按照上述规则来构建软件,则不至于将项目限入到《人月神话》所述的焦油坑之中了。 下面我用软件开发过程以解释简易之道:
“乾以易知,坤以简能”,软件开发之道就是让设计和代码保持尽量的“简”,尽量的“易”,如果在面向对象设计中,“简”就是该重用就重用,绝不重复(DRY),方法要设计的短小,类要设计的简单。(详见Bob大叔的《代码整洁之道》**“易”就是设计要让人容易理解,代码要自说明,读代码就象读文章一样。任何让人不容易理解的设计方法都无益于软件的可持续发展。
这篇blog是我以前写的,由于以前的整个blog被河蟹了,但当时有些网友在我这帖子后留言,所以我重新发一下,希望又能找到一些同好者讨论。 主要
框架之“要(Do)”、“考虑(Consider)”、“避免(Avoid)”、“不要(Do not)” 和 易学之“吉”、“凶”、“悔”、“吝”

“兲”(读tiān),是“天”字的古体,跟王八没什么关系,“兲”朝就是“天”朝,是古代中华文化圈国家对中国正统皇朝的官方称呼。
组装电脑
这是去年年底自己DIY配置的电脑,价格除显示器约四千多点,虽然价格不高,但性能堪比当时上万元的台式机。玩玩“阿凡达”游戏把所有特效全部开最高以1920X1200玩没有一点问题。为了其他人配电脑可以参考我的配置,这里我将配置单晾一下,以便参考。当时在电脑市场没有买到固态硬盘。现在用的是1T的杀捷Sata硬盘。整个体验指数就是被硬盘分数拉下的,不然就上7.3以上了。