5、网络服务架构开发原则之四:尽早构造原型
管理层敢于下大赌注于一些关键项目的开发,这是微软公司发展历史上非常值得其它公司借鉴之处。然而如果没有周密的计划,以及遵循一些原本已经证明是正确的系统开发原则,在强大的公司也会因为草率行事而导致最终的失败。在这些可以奉行的原则之中,原型法(Prototype)是非常值得推崇的,关于原型法的由来和历史我们不准备做过多的解释,因为它已经成为目前程序设计领域广泛遵循的原则。但是,Scott Guthrie所领导的开发团队在应用原型法时却有独特的心得:将原型法尽早实施于程序设计的早期过程之中,即尽早构造原型。
ASP.NET的开发过程中,确定了一个非常重要的纲领,即将构造原型的过程放在进可能早的环节之中。在项目早期力争让运行代码在原型上运行,以展示给他人。
不仅可以用原型证明系统功能的真实性,而且在这一过程中也可以学会很多构建系统的策略,以便发现哪些环节可行,哪些不可行,并相应做出响应。所建立的原型,包括组件控件驱动模型、Web编程的事件驱动方法等等。通过原型法,结合迭代策略就会发现,这些原本虚拟的应用程序原型,有些确实无法用代码编写出来,也有些功能确实非常必要。将原型法提前到需求分析阶段,对于ASP.NET系统的成功至关重要。它的重要意义有两点:第一,它是用来尽早提升质量的方法,第二,它会为在不必担心回归的情况下重构和调整代码库奠定基础。当涉足一个项目或是一个全新领域,根本不知道该如何从头开始研究出最终产品时,专门花一段时间来构建原型并不断尝试是至关重要的。
6、网络服务架构开发原则之五:架构师不能仅仅从事分析设计工作
一个好的架构师,首先不能只做分析设计工作而不编写代码。Scott Guthrie认为,架构师应该是多面手。这些人应该有时参与开发,有时进行架构设计。编写代码对于架构师而言是非常重要的。在实际工作中,一个架构师不一定要编写生产代码,但要不断尝试新技术、新方法,并体会系统的工作方式,这对于其提高设计工作的质量至关重要。为了做到这一点,不需要架构师每天编写大量的生产代码,可以每天抽出一或两小时编写代码。比如,编写一些示例、原型或有趣的小项目,以确保自己掌握和了解编码前沿技术。从代码架构师的角度来说,动手实验非常重要。
一个好的架构师,还要研究系统设计的核心理论,探索如何构建高度可靠的系统。Scott Guthrie认为,架构师应该在实践中总结出一些行之有效的原则,并应用到实际工作中。并不是说要考虑具体的代码内容,而是需要思考系统的简易性、可靠性或容错性等成功系统的核心原则及其实施策略。无论是客户端应用程序、服务器应用程序、还是游戏程序,都需要认真考虑这些原则。这儿可以举出一些有关原则的具体实例:Windows 或 Unix 应用程序中进程地址空间的工作方式是什么?什么是线程技术?如何深刻理解它在多处理器或多核系统上的工作?
具有良好编码背景的架构师,要在体系结构、开发和软件原理方面拥有非常深厚和坚实的背景。假如架构师能够勤于思考系统设计的核心理论,可以在很大程度上给于开发团队有效的指导。