`
zsmud
  • 浏览: 71669 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论
阅读更多
最近在看网上下载的<J2EE架构师手册>,这本书是英文版的,网上随便看了看也没有它的中文译本,所以我打算边看边把他翻译看中文,这本书是2004年出版的,由于我没有看过,对我来说这是一本新书哦,不说了,开始吧。。。
 J2EE架构师手册:怎样成为一个成功的J2EE架构师

 第一章: 项目开发团队以及项目的生命周期

 地本章内容说明了建立一个成功的项目从开始到最终的发布的基本要求.一开始需要定义技术架构师(以下简称为架构师)是什么,要做些什么,以及总结出架构师怎样与其他项目组成员协调工作.接下来介绍了在项目的开发进度方面几个可选方法,这仍然是一个不断讨论的话题,由于没有最权威的开发进度的标准导致了许多公司不得不去适应那些杂乱的开发计划.

 项目开发团队: 角色和职责

 所有的J2EE开发团队都需要开发成员有着广泛的知识从而去充当不同的角色.能让J2EE项目能够得到成功有以下一些角色:

架构师
项目经理
业务分析员
美工设计人员
表现层开发人员
业务逻辑开发人员
数据建模人员
数据库管理员
数据迁移专家
基础设施专家
测试专家
虽然我本书主要是集中在架构师上面,但是我们还是列出了在J2EE开发团队中的其他角色以及他们的职责,并且说明了架构师应该怎么样对项目中的其他角色负责.

一些公司用一些别的名称来表示上述的角度,例如,基础设施专家可能叫系统管理员,测试专家可能叫测试员,还有一些公司可能会区分测试经理和测试员.我们不管你是工作在哪种角色下面,把一个项目开发组分成几个部分能很大的提高J2EE项目开发成功的可能性.

还有,一个人也可能去完成上面多种角色,也有可能多个人去共同完成一个角色所要求的内容(如果你的项目足够大的话),一些公司将架构师和项目经理捆绑在一起做为一个角色,也有高级管理人员即是数据管理员同时也是系统管理员,还有一些开发人员即工作在表现层也工作在业务逻辑层.在这里我并不去建议一个开发团队如何去组织这些,而仅仅是说明哪些是需要的,如何去组织是他们的事了.

架构师

架构师决定在项目中使用的技术.在许多公司,一些技术的选择都是企业级的.例如,一些公司的硬件,操作系统以及软件(J2EE容器提供商)的选择都是企业级的.一般来说,JAVA语言也是一种企业级的选择.

但是,大多数应用程序使用的技术并不在企业级的范畴内。对于所用技术的选择我在企业级和个人应用程序做了一下比较,例如,对于服务器端的编程可能会用企业级的,而XML解释器之类的可能就使用那些独立架构。在许多公司,企业级技术的选择往往导致一部分人与J2EE开发小组分离。

一般来说架构师的主要工作是负责选择使用在项目中的第三方的工具包,例如,架构师可能会根据需要为模板引擎而选择使用Apache的Velocity开源项目。


架构师为项目提出方法学和框架的建议。典型地,架构师是向项目经理提出这些,例如,一般来说这些建议是使用用例来表示分析的结果并且做出原形,还有就是根据对象模型写出设计文档。一些公司将这些方法学定义在企业级的层面上。

架构师要提供全部的设计和应用程序的结构。每个开发人员都会有自已的想法,习惯以及偏爱,这可能会导致开发组内有很大的分歧,架构师要进行协调。

我把架构师的角色比做是管弦乐队的指挥,所有的音乐演奏者对所演出的音乐有不同的理解,指挥就需要发出指示让各演奏者协调工作。

架构师要确保项目已经准备充分。对项目的分析应尽可能的详细和一致,从而能在这个基础之上建立应用程序。典型地,架构师需要与项目经理和业务分析人员一起来定义项目。

架构师确保项目有足够的文档。书写设计文档是一个很关键的步骤,它能很好的建立开发人员之间交流的桥梁。建立文档的过程可以使架构师完全地想清楚整个项目。接下来的事情就是分配开发人员,就不会对架构师的时间分配有任何的影响。对于开发人员来说,文档可以让他们在架构师不在项目组的时候继续工作,而不会去花费开发组其它成员的时间。文档也帮助项目本身不受个人思想的左右。

我见过许多项目是没有开发文档的,这样导致的结果是每增加一个开发人员将成为一个很烦琐的事,因为架构师不得不用口述的方式来向新来的开发者描述设计。口头的传达这些设计如此烦琐使用我们看不到新增加开发人员所带来的任何好处。

架构师建立编码规范。因为每个开发人员都有自已的偏爱,编码标准是一个枢纽,很容易的将各开发人员结合起来。架构师负责为以下主题建立的项目流程和规范如下,在后续将有更多的方面包括进来:

异常处理
日志记录
测试
多线程
架构师决定项目经理所要执得的任务。这个角色对J2EE项目是很重要的,因为J2EE项目比起其它别的项目包涵了更多的技术。除此之外,架构师还帮助项目经理进行项目的计划和评估。

架构师为开发人员解决疑难问题。典型地,架构师比开发人员更有经验。当开发人员遇到技术问题时,通常是架构师帮他们解决。对于很多项目,架构师更多的是一个指导者。

架构师要让开发者强制遵守编码规范。做为编码规范的作者,架构师能很容易的发现没有遵守规范的地方,因此可以合理的进行纠正。项目经理负责这一强制性任务,不过他们通常没有这样的经验去发现这些不规范的地方。

代码复查是很好的强制遵守规范的机制,但如果是其他组的成员来检查另一个组的代码并且是按这个组的编码规范来进行时,将会是很困难的。

代码复查对开发小组的所有成员也是一个很好的学习手段,架构师发现设计漏洞,所有的开发人员将能从这里学习到一些东西。一个团队如果有很有经验的成员,将会推动代码复查。要使用代码复查发挥作用,应该在一个友好的氛围中进行。

架构师协助项目经理估计管理项目的开销以及管理项目带来的好处。虽然通常来说这是项目经理的事,但是大多数对于J2EE技术缺乏经验的项目经理来说可能不能意识到所有需要做的。

架构师协助管理部门做人事决定。人才的选拔通常是看成行政手段,架构师能对人员技术能力做出一个较好的评估,不当的人才选拔会对项目进度造成很大的影响。


项目经理

项目经理的工作是负责计划和调节项目中的所有任务,项目经理也必须与管理部门以及最终用户就当前项目进行交流,还有就是项目经理要获取项目组所需要的资源。


架构师负责向项目经理提供技术建议和指引。架构师协助项目经理确定项目中的任务以及完成的顺序,也帮助项目经理决定项目需要的资源包括项目组成员的选取。


业务分析员

业务分析员负责与最终用户(以下称为客户)交流定义需求。详细的需求对于设计和建立整个应用是很有必要的,因为客户和开发人员的用的是不同的术语,业务分析员的作用就是在他们中间做一个翻译,一般来说业务分析人员都同时具有业务经验和技术的经验。

在控制项目的进度方面,业务人员的作用是很小的。开发人员在编码和测试阶段都会有一些新的问题,业务人员会在业务逻辑的角度回答这些问题。


架构师负责确保由业务人员整理的需求是足够的。业务人员分析出的需求100%正确是不现实的,毕竟业务人员会加入自已的主观想法,分析要彻底才能保证设计的进行。


美工设计人员

许多应用特别是那些公众的应用都需要专业的图形设计人员。许多架构师通过使用自已的开发工具开发出的WEB页面非常难看,而且很难用。图形的设计比科学更具有艺术性,通常,图形开发人员与业务分析人员以及其它业务的图形开发人员一起工作,同时图形开发人员也需要与表现层的开发人员工作建立原型。


架构师负责确保页面设计的技术可行性。我见过一些页面的设计使用了文字的效果,能在文字处理软件中显示,但在HTML里就达不到这种效果,比如,让文字旋转90度,架构师因此需要在早期就发现这些问题,并纠正。


表现层开发人员


表现层开发人员负责所有的HTML,JAVASCRIPT,APPLET/SWING,JSPs以及SERVLET的编码,一般来说,所有与客户界面开交道的地方都是表现层开发人员的工作范围。一般来说与美工设计人员合作,表现层开发人员使用原型开发出工作版本。并且与架构师一起决定开发的结构以及前台导航的设计。

架构师负责确保设计模式可维护可扩展。导航通常比较复杂,会很容易的使代码很难维护。架构师要解决这些问题以及由此引起的新问题。


业务逻辑开发人员

业务逻辑开发人员负责项目应用不可见部分的编码,包括企业Bean,Web Service,RMI Service,CORBA Service,业务对象以及数据访问对象,人们称这些不可见部分为服务器端组件。业务逻辑开发人员通常是JAVA开发专家,与架构师工作的很近并且根据需要帮助架构师调整性能。


架构师向业罗逻辑开发人员提供指导。一般来说问题是出现在服务器端,这通常是最复杂的一部分,架构师往往扮演指导者的角色。

数据建模人员

数据建模人员使用业务分析的结果来定义,分类存放在数据库中的数据,典型的数据建模是将应用中的数据在ER(实体关系)图里表示出来。数据库管理则使用ER图建立物理的数据库设计,由此看来,数据建模人员和数据库管理员一般是合在一起的。

架构师负责确保有足够的数据模型。和业务分析一样,100%完全的建立模型是不现实的,如果数据模型大部分建成并且作为第三方的标准形式,那以后模型的更改是一件很容易的事。


数据库管理员

数据库管理员负责明确描述数据库的设计,并建立和维护数据库应用环境。通常,数据库管理员协助性能的改善以及帮助业务逻辑开发人员通过对数据的访问来诊断应用程序。有些时候数据库管理员同时担任即是业务逻辑开发人员和数据迁移专家两种角色。

架构师与数据库管理员共同解决由数据储存带来的问题。但数据库管理员主要是与数据建模人员和业务逻辑人员进行交流的。

数据迁移专家

有一些应用比如数据仓库,是严重依赖于移植来的资源的。数据迁移专家书写和管理所有的脚本和程序以使数据能够移植到正在进行的项目中去,当一个应用有很少的移植需求的时候,这个角色可能不需或者将这个角色融合到数据库管理员的角色中去。

架构师为数据迁移专家定义迁移需求。并且与数据迁移专家一起工作去解决出现的问题。


基础设施专家

基础设施专家负责提供开发,测试,产品环境以及部署的方式。适当的基础结构能节约开发和部署的时间,这包括管理容器,书写部署描述符,并且通过测试环境协助其他开发人员诊断问题。

架构师为基础设施专家定义需求。架构师与基础设施专家协同工作确定需要环境的数量及其特性,以及这些环境所需要的支持级别,大多数项目需要至少开发,测试以及产品环境。一些公司将架构师与基础设施专家合二为一了。


测试专家

测试专家确保产品是符合文档的要求以及确保没有错误,一般来说,测试专家至少有业务方面的基本知识。

架构师与测试人员一起决定需要的基础设备以及提供支持。项目经理和业务分析通常一起完成测试计划和测试的方法,因此,架构师在测试中提供技术支持。

第一章完
分享到:
评论
1 楼 llhdf 2009-09-28  
我最近也在看这本书,感觉你翻译的不错,希望继续翻译。

对于书中:The technical architect ensures that the project is adequately defined,这句话,你翻译成了“架构师要确保项目已经准备充分”个人感觉应该是“架构师确保项目被完全分析清晰”如有不同意见可以讨论一下。

我msn是 llhdf@hotmail.com

相关推荐

Global site tag (gtag.js) - Google Analytics