这几天在看《.Net设计规范》,顿时着了迷。有拔云见日,茅塞顿开的感觉,个人认为值得所有开发人员尤其是.Net开发人员一读。作者之一,.Net开发核心Brad Arams,不久前据说跳到了Google。看来微软也未必能称几年老大了,但我相信.Net却会不断发展壮大。
一门语言要成功,一定要有强大的类库。类库同时也是语言最基本也是最重要的应用。.Net Framework不但有强大的功能,也很容易上手。八年时间里.Net 4.0已经是第六个版本了,应该说是相当成功了。
.Net不像Java或C++,是一两个大牛编写,天涯海角不沾边一群人添添补补,结果越来越搞得标准乱、框架杂。.Net平台则不同,它是微软的战略计划,Framework是一群一个屋檐下工作的牛人一开始就确定好标准,形成规范,并在规范指导下开发的。
Anders Hejlsberg(没人不知道.Net之父吧),在书的序里写道:可以想像,一大群聪明人在一起肯定会有许多不同意见,我们的开发组正是如此-再没有什么事情能编程约定更能激发出生动而热烈的辩论了。但是,为了保证一致性,我们逐渐化解了各种不同意见,并将结果编纂为一组通用的规范,这样程序员就能容易地理解并使用框架。
书中讲得是框架,不只包括.Net Framework这样的大型框架,其实在每个较大的项目中,往往需要编写一个与业务相关的框架作为项目核心部分。框架设计相较于应用程序其他部分,应该有什么样的特点或质量标准呢,该书认为有七点。
1、要简单。宁简勿繁,宁缺勿滥。加功能容易,砍特性很难。功能多了未必强大,抓住核心中的核心才是框架设计之道。
2、要一致。像方法属性参数命名,类似的功能有类似的完成方式。做不到这点,说明写框架的人逻辑混乱,根本不适合写框架。
3、借鉴过去。要借鉴过去框架成功经验,其实我知道他们想说要学.Net Framework,要与它一致。
4、面向未来发展。适当扩展性是任何实用程序的基本要求。不过平时碰到总是极端,要么完全不考虑,要么是杞人忧天。
5、良好的集成性。不太理解含义。应该小框架问题不大,大一点的像Nhibernate、MVC等就要考虑了。
6、设计代价高。框架要求这么高,肯定是由团队中技术最强的人来做。要是像偶现在水平写框架,写出来一定被人骂死。
7、充满权衡利弊。第6、7条本来在中间,我放在最后了。该加哪些,不加哪些,多大程度上的扩展性、安全性。总之,写框架没那么容易的。
中文版还加了注,说可靠性、兼容性、安全性、性能也是框架设计基本要素之一,其实这些应该是所有程序的基本要素。当然框架和普通程序有时没那么严格的区别,普通程序的要求肯定适用于框架,框架的要求大部分也适用于普通程序,这是我的理解。
这本书确实不错,希望更多人能看到,没看过的网上搜一下吧 .Net设计规范 。书中各部分规范,以后有时间还会写写。