background image

Service、.NET Remoting、企业服务组件等。总之,丰富的开发实践经验有助于避

免架构师纸上谈兵式的高来高去,给代码编写人员带来实实在在的可行性。

  其次,具有足够的行业业务知识和商业头脑也是很重要的。行业业务知识的

足够把握可以给架构师更多的拥抱变化的能力,可以在系统设计的时候留出一

些扩展的余地来适应可能来临的需求变化。有经验的设计人员可能都碰到过这样

的事,一厢情愿的保留接口在需求变化中的命中率非常低。也就是说,在系统设

计之初为扩展性留下来的系统接口没能在需求变化的洪流中发挥真正的作用,

因为需求的变化并没有按照预想的方向进行,到最后还是不得不为变化的业务

重新设计系统。这就是因为对业务知识的理解和对市场或者商业的判断没有达到

一个实用的、可以为架构扩展性服务的水平。

  再次,张友邦提到,架构设计师对人的关注必须提升到架构设计之初来纳

入考虑的范围,包括沟通以及对人员素质的判断。软件过程是团队协作共同构建

系统的过程,沟通能力是将整个过程中多条开发线粘合在一起的胶水。大家都应

该碰到过事后说

“原来是这样啊,我不知道啊”或者某个开发人员突然高声呼喊

“为什么这里的数据没有了”之类的。沟通的目的就是尽量避免多条开发线的混乱,

让系统构建过程可以有条理的高效进行。另外,对人的关注还表现在对团队成员

的素质判断上,比如哪些开发人员对哪些技术更熟悉,或者哪些开发人员容易

拖进度等。只有合理的使用人力资源,让合适的人做合适的事情才能让整个软件

过程更加高效。

  另外,张友邦认为架构师应时刻注意新软件设计和开发方面的发展情况,

并不断探索更有效的新方法、开发语言、设计模式和开发平台不断很快地升级,

软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。但

对新技术的探索应该在一个理性的范围内进行,不能盲目的跟风。解决方案提供

商永远都希望你能使用它提供的最新技术,而且它们在推广自己的解决方案的

时候往往是以自己的产品为中心,容易给人错觉。比如数据库,往往让人觉得它

什么都能做,只要有了它其它什么都不重要了。但事实上并不是如此,对于小型