摘自易经系辞“乾以易知,坤以简能。易则易知,简则易从。易知则有亲,易从则有功。有亲则可久,有功则可大。可久则贤人之德,可大则贤人之业。易简而天下之理得矣。天下之理得,而成位乎其中矣。”上述“乾”、“坤”之道实乃软件开发之王道。如果能按照上述规则来构建软件,则不会再《人月神话》所述的焦油坑之中了。
下面以软件开发之道解释之:
“乾以易知,坤以简能”,软件开发之道就是让设计和代码保持尽量的“简”,尽量的“易”,如果在面向对象设计中,“简”就是该重用就重用,绝不重复,方法要设计的短小,类要设计的简单。(详见Bob大叔的《代码整洁之道》)。“易”就是设计要让人容易理解,代码要自说明,读代码就象读文章一样。任何认人不容易理解的设计方法都无益于软件的可持续发展。
“易则易知,简则易从”,设计方法容易,编码简单,由让人容易理解。代码何持简洁,无重复代码,则让后续开发容易遵从。就象.Net Framework的设计,其可持续发展之道就是这两个字“简”和“易”。参加获Jolt大奖的书《.NET Framework 设计规范——.NET约定、惯用法与模式》,该书第一章第一节第一小段就强调“精心设计的框架是简单的”。
“易知则有亲,易从则有功”,设计的让容易理解就具有亲和性,让人从易遵从就有了发展的功力。软件开发过程其实是个演化过程。编码、设计只是演化过程中的一些动作而已,让软件能长久存在,就必须具有可演化的基础,而这基础就是“简”和“易”。
“有亲则可久,有功则可大”,正是这简单性让.Net Framework得到现在这样的发展。正是有很多人使用.Net Framework这样的框架才使得该框架发展壮大。其实不单是.Net,任何好的软件和应用系统,包括操作系统,象Windows,Iphone,都因其使用的“简便性”而得到发展壮大,而象IBM的产品,虽然它的“科学性质”比较强,但易用性太差,其“可久”,“可大”就很值得考虑,以前也曾出过优秀的产品如IBM OS/2 WARP,但不及Windows的“简”和“易”,因此不能长久,也不能壮大。
“可久则贤人之德,可大则贤人之业”。可久,可大,则成就了软件之德,软件之事业。
“易简而天下之理得矣。天下之理得,而成位乎其中矣”。正是因为“易”、“简”,软件开发和设计这个天下的道理就得到了。得到这个道理,我们软件开发人员就可以在其中成就自己了。
Eureka,也就是我,近尽全力应用这近乎完美的易简之理来开发我要开发的软件,而开发软件的同行们,我想慢慢的,也会有同样的感触的。
添加新评论