网络通信 频道

网络服务架构开发中应遵循的重要原则

  3、网络服务架构开发原则之二:重用性并非总是一剂良药

  Scott Guthrie当时领导开发团队在开发过程中也曾面临平台选择的问题,当时.NET已经初具规模,但是最初它们却没有基于.NET进行开发,而是在大部分的原型设计中选择了传统的C++、JavaScript 和 ActiveScript 脚本引擎,这是因为在体现编程模型的垃圾回收、精细封装和面向对象技术方面等特性方面,他们没有发现.NET所提供的大量可重用代码可能给自己未来的产品可能带来任何的方便。微软的开发团队不利用自己具有可重用开发的基础平台,这是否是对自己产品的不信任呢?所有的知情者为他们捏了一把汗,因为这需要极大的勇气、并要冒极大的风险,所开发的产品能否与微软的大框架良好兼容,开发之初没有人敢相信他们必定成功。

  时至今日,当ASP.NET几乎成为网络开发架构的首选已经成为事实的时候,Scott Guthrie终于能够大胆地说出自己的看法了,软件开发中的重用性原则并非放之四海而皆准的真理,有些时候没有一个具有重用性的基础平台,对于成功产品的推出可能会是一件好事情。换句话说,如果当时的基础开发是基于.NET开始的,恐怕不会有今日ASP.NET的成功。实际上,他们的这次成功也给大量迷信上层平台的人们提了一个醒,重用性并非软件工程原则提供给开发人员的必须服用的良药。

  目前,人们已经爱不释手的ASP.NET拥有可以对服务器的后台运行垃圾回收的应用程序,可以优化地实现服务器的瘦身。

  4、网络服务架构开发原则之三:尽量使用托管代码

  Scott Guthrie所领导的开发团队在所开发的ASP.NET中使用了大量的托管代码,它不会成为某些本机内容的打包程序,而需要将它深深地置入到平台之中。据统计,ASP.NET开发过程中,95% 的代码使用了托管代码。这样做有两重原因:一是要利用其提供的扩展性,真正将面向对象的扩展性深深置入到平台中;二是由于客户应用程序将采用托管代码,而且相对于客户所占的份额而言,在调用堆栈方面的代码的比例相对较小。如果不使用托管代码编写代码,还认为客户应用程序能轻易成功,目前看来是自欺欺人的。虽然放弃了传统代码重用的理念,而选择代码托管作为一次风险很高的赌博,但这种方式确实很奏效,可以说托管代码对于ASP.NET项目的成功有着巨大的促动作用。

  ASP.NET的成功从某种意义上说明了小团队开发可以从一个全新的代码库入手,而不必要拘泥传统软件工程中声音越来越响亮的代码重用原则,更有利于将一些核心的改进深入到引擎内部,随着后续系统的不断充实和开发团队的不断壮大,这种对深层引擎的改进会得到丰厚的汇报。在大的开发团队中,如果离开了COM的互操作性而重用大型旧代码库,实施起来的困难也会非常巨大。因为COM的互操作性在那时还根本不存在。

0
相关文章