background image

    ▲ Infrastructure specialist(system administrator)
    ▲ Testing specialist

    虽然本书的焦点在于技术架构师角色,但是本书也定义了 J2EE 项目开发团队中的其它主要角色和他们相应
的职责

.

在有的组织中,这些角色有不同的名称。例如,有些机构中基础设施专家被叫做系统管理员;一个测试专家被叫
做测试员,或者有些机构将测试工作管理者和单独的测试员区分开来。不管这些角色叫什么,备齐这些角色会使
你的

J2EE 项目更容易获得成功。

    更进一步,一个人担任多个角色是可以的,如果项目足够庞大,多个人分担一个角色也是允许的。有些组织
合并了技术架构师和项目经理的角色。也有些组织让一个资深开发者同时担任数据库管理员或者系统管理员。或
者师同一个开发者既忙于表现层工作也忙于商业逻辑层工作。在这里我不是推荐该如何组织一个开发团队,而仅
仅是想交流一下个合理的

J2EE 项目团队中,应该设置哪些职能角色。

技术架构师

(Technical Architect)

  ▲ 技术架构师应确定项目需要用到哪些技术
    在许多组织中,一些技术的选择是企业级行为。例如,许多组织有既定的硬件平台选择和软件平台选择(例
如,

J2EE 容器提供商)。通常,选择什么编程语言,例如 Java,是企业级行为。

    不过,绝大多数应用都有尚未在企业级明确约定或选择的技术需求。在这里,我区分了企业行为进行的技术
选择和个人行为进行的技术选择。例如,决定在服务器端使用

Java 作为编程语言可能是企业明确约定过的要求,

但是确定用哪个

XML 解析器,还是可能要由负责该应用的架构师来决定的。许多组织中,进行企业级行为的技术

选择的人员和

J2EE 开发团队人员并不是同一批人。技术架构师通常负责选择用于项目开发的第三方开发包和实用

工具,如

XML 的解析工具包的选用,是否使用 Hibernate,Struts 等。

  ▲ 

    

技术架构师推荐开发方式和项目技术框架

    一般来说,项目架构师向项目经理针对这些提供推荐和建议。例如,技术架构师建议项目经理将所有需求分
析结果用

UseCase 完整描述,并最好附有原型示例;或者建议设计文档使用对象化描述方式进行文档化等。

  ▲ 

  

技术架构师提供从头到尾的设计和应用结构

    不同开发者给项目带来不同的先入为主的观念、习惯和选择。技术架构师扮演乐队指挥的角色,统一矛盾之
处,保证不同开发者的成果能够很好的融合在一起。也就是维持整个项目的概念完整性和同一性,达到和谐。
  ▲ 

  

技术架构师保证项目被良好的定义

    项目的分析必须详细一致,概念统一,能为构建应用提供良好的基础。技术架构师通常要和项目经理、业务
分析员一起合作定义项目。
  ▲ 

  

技术架构师保证应用的设计被适当的文档化

    在项目团队的开发者之间建立良好沟通的关键步骤是写好应用的设计文档。写文档的具体过程强迫架构设计
师充分详细地考虑设计中的问题。形成的文档也可以保证在改变和增加项目团队成员时,不占用技术架构师的时
间。对于开发者来说,应用设计文档可以使得在技术架构师短时间缺席的情况下,工作能够继续良好开展;并且
可以在不占用其它团队成员时间的情况下,解决应用设计中的冲突或矛盾。文档还可以将人员流动的影响和项目
分离开来。
    如果没有文档支持,项目团队新增成员,需要技术架构师口头传授设计给新人,必须通过口头交流设计,弱
化了新增成员带来的好处。
  ▲ 

  

技术架构师应该建立编码规范方针

    因为不同的开发者有编码偏好;编码标准需要颁布,这样不同人编写的代码片断更容易糅合在一起。通常,
系统架构师负责建立的编码规范方针包括下面几方面的内容:
    Exception handling
    Logging

    Testing
    Threading

▲ 

  

技术架构师为项目经理识别和分解任务

    在 J2EE 项目中,这个作用尤为重要,因为 J2EE 项目往往比一般系统项目牵涉更多的技术层面。另一方面,
帮助项目经理做估算和计划,也需要架构师提供项目主要任务的划分情况。
    ▲ 

    

技术架构师为困难任务向开发者提供监护

    如果开发者因困难的任务而放缓进度,通常是技术架构师帮助提供解决方案。技术架构师更多的是提供监护
而不是亲自操刀去做实现。
    ▲ 

    

技术架构师应贯彻编码规范的实施

    作为编码规范的制定人,技术架构师最可能在编码规范没有被遵照时及时发现问题,因此应该担负贯彻执行
编码规范的任务。项目经理通常关注的是开发任务的完成与否,而不是实现任务的代码是否遵照了编码规范。
    直接审核代码是非常好的手段之一。如果团队成员审核代码的话,任何开发者都很难绕开团队开发代码规范。

    代码审核机制还是团队成员互相学习编码技巧的上好手段。技术架构师在这个过程中发现设计缺陷和漏洞,
所有参与者从其余的团队成员学习编码手段和技巧。团队中最富经验的和架构师帮助和指导代码审核。为取得最
好效果,代码审核应该在和谐友好的气氛中进行。
    ▲ 

    

系统架构师应该为项目经理在项目估算方面提供的帮助