浅谈架构:除了画架构图,架构师还需要些什么?
引子
"架构就是处理一些重要事情,不过鬼知道那是些什么。" -- Ralph Johnson
架构师(Architect)应该是一个很有份量而又饱受尊敬的职位。每当听到某某是某公司的架构师时,会不会有一种肃然起敬的感觉?在大众看来,架构师通常跟系统设计、技术实力、领导力、影响力有着密切联系。也正是这个原因,企业中很多架构师的岗位都是由经验丰富、技术能力扎实的资深软件工程师担任。然而,软件行业对于架构师的定义,其实并不明确:亚马逊、阿里云之类的云服务商有自己的架构师团队,不过大多是顶着架构师的名头进行客户售后服务而已;在某企业里的架构师,无外乎就是利用自己的丰富经验和过硬实力,来解决技术难题,相当于资深软件工程师。这些都跟我们心目中的设计高大上架构图的、无所不知的架构师,有很大差别。
本文中所指代的架构师相关概念,主要来自于最近阅读的一本书《软件架构基础》(英文名:Fundamentals of Software Architecture,作者 Mark Richards、Neal Ford)。本篇文章会简单介绍更具实用意义上的架构师需要做什么,以及相关的必备技能。