对于软件架构师的一些理解
一、软件架构师的定义 架构师在一个团队中的职责比较独特,既有特定的工作,又没有特定的工作。但毫无疑问处于团队的核心位置。 架构师不是项目经理,却也需要决定交付软件的时间和形式。架构师不是产品经理,却也需要保证如何实现业务功能。架构师不是软件工程师,却也需要做核心部分的研发。 大多数的架构师都是从技术出身,懂编码,懂算法,懂测试,懂部署。这些都是一个架构师的基础技能,但除此之外还需要掌握一些其他的必不可少的技能,记忆一些新的岗位职责。 二、软件架构师的工作职责 除了掌握编码、测试、部署等工作,架构师还需要有以下工作职责: 2.1 需求分析 架构师要与产品经理、项目经理一同协作,对客户提出的软件需求进行分析,并从专业角度给出意见。 项目经理从用户角度出发进行需求分析,产品经理从业务角度出发进行需求分析,架构师从技术角度出发进行需求分析,三者的分析结果结合到一起,可以使分析结果更加立体和全面,避免上图中发生的情况。 除了业务需求外,架构师还需要关注另一方面的需求 —— 非功能需求,这种需求更偏向技术,架构师应主动从项目经理和产品经理处密切关注这方面的需求,因为它们可能会影响到架构设计方向的约束和特性。 2.2 分解任务 这里所说的分解任务并不是分配人员的工作,而是对一个系统进行模块分解。 一个项目经过的需求分析后,需求大体已确定,那么就需要对这个项目进行模块分解,是整体向部分的过渡