日期:2008-12-28  浏览次数:20630 次

优秀Architect之路

(ZDNET CHINA 特稿(developer@zdnet.com.cn) 2002-03-19 )





在我们所处的这个时代能够成为技术问题专家是一件再好不过的事情了。或许你会觉得能够进入企业的管理层才是非常了不起的事情。你可能品尝过个中滋味,而且也体会过进入管理层的种种好处,但事实上,从事管理工作的好处被世人过分的夸大了。在一般情况下,如果经济出现了衰退或者仅仅是表现出不景气的时候,企业的管理人员最有可能成为经济的受害者而体会失业之苦。现在,许多高级技术职位的薪水待遇是同那些高级管理职位的薪水和待遇不相上下的。在这些高级技术职位中,具有代表性的有:公司的首席技术官,软件工程师,或者高级程序开发设计师等等。


在这些职位上的人们通常都对决定信息系统的发展方向负有责任。他们所做的决定必须能够让公司在激烈的市场竞争中处于优势的地位。"建筑师"这个词就是用来形容这类人的。这么称呼他们是非常形象的,因为他们所做的,就是在构筑一个企业"大厦"的基础,企业要依靠这个"基础"才能够不断的发展下去。


上边所描述的只是一名"建筑师"的一个方面,如果想要成为一名优秀的"建筑师"就必须把众多的能力综合于一身。我曾经见过许多所谓的"建筑师",我称他们为所谓的建筑师是因为他们所做的,只是一名资深的程序开发设计人员应该做的罢了。所以,在我看来,把他们称为资深程序员也许才更为准确。在本篇文章里,我将会向大家具体的描述成为一名优秀的建筑师所需要的各方面条件。


要对现在及过去的技术有充分了解

想要做到优秀,建筑师们不但需要掌握最新最前沿的技术,而且还要对以前的那些技术也有一定程度的认识。这对于那些最近才进入专业软件开发领域的程序设计人员来说是有非常大的难度的。举个例子来说,刚从大学计算机专业毕业的学生对于计算机的三层体系结构可能拥有相当深厚的了解,但是他们可能并不理解这种三层结构在一台客户服务器上具有的种种优点。他们只知道三层结构包括了表示层(Presentation),商业规则层(Business Rules)以及数据层(Data),这是根本不够的。一个建筑师必须真正理解这个技术,理解它到底有何种优点,这样才能在一个特定的结构里充分的发挥出它的这些与生俱来的优点。

要准备好随时面对管理和分析的工作

一个建筑师必须对技术方面的事务了如指掌,并且还应该依据自己所掌握的为公司发展新产品定出正确的方向。许多的公司直到现在才开始明白这样的一个角色对公司来说有多么的重要。把全部有关技术的决定权交给那些资格最深的人在现在来说已经不是那么令人接受的做法了。为数众多的公司都曾在此问题上吃过大亏,损失过数以百万计的美元。这些公司在为客户提出解决方案以及具体的体系结构方面都失败了。现在,这些公司正在为把不同的系统综合于他们自己的组织结构之中花费着巨额的金钱。


一些必须要搞清楚的关键词

下面是一些与这个行业有关系的重要名词的列表,这些专业名词都是一个建筑师必须稔熟于心的,并且要知道什么时候会使用到与这些词有关的内容:

l          数据库的独立性(Database independence)
l          平台的独立性(Platform independence)
l          可升级性(Scalability)
l          性能表现(Performance)
l          微软公司的交易服务器(Microsoft Transaction Server)
l          企业版的JavaBeans软件
l          可扩展标记语言(就是指XML语言)
l          负载平衡(Load balancing)
l          动态服务页面(ASP编程语言)
l          Java服务页面(JSP编程语言)
l          Servlets
l          活动错误信息(Active/active failover)
l          冗余(Redundancy)
l          设计方案(Design patterns)
l          无线访问协议(WAP)
l          应用程序服务提供者(Application Service Provider)

作为一名建筑师,必须对上边的这些名词以及它们所包含的意思,技术等等各个方面都要做到滚瓜烂熟。你必须对处于三层结构体系中(3-tier architecture)不同层面上的不同技术都要充分的予以理解。举个例子来说,你就必须得知道HTML所代表的是什么,HTML驻留在什么位置,以及HTML与XHTML之间到底有着什么样的联系。而且,更为重要的是,你必须弄清楚在你的组织中向着XHTML的发展是否有着充足的理由。上面的这些问题如果你还没有弄明白的话,那么就让我来告诉你:HTML是一种处于表达层面(presentation tier)上的表达技术。而XHTML则是一种遵循了XML标准的继承了HTML内涵的另一种新的技术形式。如果在你的公司中原来并不是使用HTML页面的话,那么,在你的公司中使用XHTML也是不必要的。而且,这样做的花费也将会是巨大的,尤其是没有一个合理的商业理由来让你完成这种转变的时候,这么做更是没有必要。


建筑师必须清楚的了解Jscript, javascript, 以及VBScript这三者之间的关系,并且对于Servlets, JSP, 以及ASP这三种编程语言的不同点也要了解的相当透彻。同样,熟练掌握商业逻辑层面(business logic tier)上的各种技术也是非常重要的。举个例子来说,你是否真的清楚到底在什么时候才会需要使用到消息序列(messaging queue)呢?对于消息服务器来说,你拥有哪些选择呢?

要坚持不断的学习,才能跟得上时代的脚步

  
一个人要想学会所有的东西那是根本不可能的,但是怎样才能保证你所学习的那些东西对于你的工作来说是必要的呢?在相当长的一段时间内,绝大多数的程序设计人员都是使用一种或者很有限的几种技术来完成他们手头的工作的,所以,他们并没有广泛的接触到各种不同的技术。对于上边的这种情况,我的建议是,一个想要成为&q