架构师

架构师的定义

架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作,主要着眼于系统的“技术实现”,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。

架构师的重要作用

架构师在整个开发过程中都起着重要的作用,并随着开发进程的推进其职责或关注点不断地变化,在需求阶段,架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查客户及市场人员所提出的需求,确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。

如何成为优秀的架构师

1、必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到业务场景中去的。

2、要具有领导能力与团队协作技能,架构师必须是一个得到承认的技术领导,能在关键时候对技术的选择作出及时、有效的决定。

3、具有很强的沟通能力,架构师经常需要与各种人打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,而且在很多角色之间还要起沟通者的作用。

构架师自我培养过程

1、初级程序员

掌握基础语言和设计模式。

2、高级程序员

掌握分布式系统和面向服务系统的构建和原理。

3、架构师

丰富的大型项目经验,抽象和归纳自己的构架模式,面向领域的设计。很强的沟通和理解能力。