[总结]架构师如何做架构?

本文是一篇关于架构师训练营第一周学习总结文章,原课程内容从如何成为架构师、架构师主要职责、架构师核心能力和架构师如何做架构等几个方面开展。文本对课程内容进行浓缩、提炼其精华内容。

1、什么是架构师?

对于架构师的理解可谓是众说纷纭,像一千个读者就有一千个哈姆雷特。架构师在一些大公司会分为业务架构师、系统架构师(技术架构师)等,小公司一般是由同一个人兼任两者。不同的划分都有自己的诉求,业务架构更关注业务,技术架构更专注技术的设计。不管如何划分,架构师的核心能力不会有多大的差别,可以从架构师的主要职责和核心能力进行阐述。

当你弄清楚了架构师所做的事情及核心能力才能更进一步的了解它,架构师是一种角色,人人都可以承担架构师的角色。架构最关键的是相关方,有个流行的段子:面向简历编程,面向老板架构,即找到特定对象进行架构,架构师需要的是一个“悟”,人生也是一样的,需要参悟。

架构师是做架构设计、对系统架构负责的那个人,架构师是一顶帽子,而不是一把椅子,架构师是一个角色而不是一个职位。

2、如何成为架构师?

成为架构师一般有两种渠道:内部晋升和外部跳槽面试。

3、架构师的主要职责

  • 编写架构设计文档
  • 开发编程框架
  • 重构软件代码
  • 设计系统架构
  • 技术选型,解决技术使用中存在问题
  • 优化系统性能
  • 模块分解重构
  • 保障系统安全与高可用
  • 技术创新
  • 沟通管理

4、架构师核心能力

一个卓越的架构师,首选是一个出色的程序员,一个出色的程序员意味着在技术的深度上有所建树,其次在技术的广度上涉及多领域知识,能把控技术的前瞻性(对新技术等有敏感);最后就是抽象思维、透过问题看本质的能力;贯穿前后的还需沟通交流、平衡取舍。架构师不是一个人在战斗,是在一个群体中战斗,去推动群体完成公司的战略目标。

5、什么是软件架构?

维基百科中对软件架构定义是:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。以下是软件架构关系图:

软件架构关系图
软件架构关系图

架构是由架构元素和元素间关系组成的,元素间的关系有静态关系、动态关系;系统会有一种或者多种架构,而架构需要由架构文档来体现,架构文档由架构视图来组成,架构视图反映的是相关方关注点的具体展现。架构核心就是解决业务相关方的问题,不同的相关方(产品、业务方、技术经理等干系人)关注点不同,需要有考量提供不同的架构文档。架构师面对不同的受众,要用不同的方式,展示不同的侧面。其实不同的人关注点不一样,需要我们提供人家感兴趣的东西。架构本身就是一个多面体,通过多维度来展示个问题。

6、架构师如何做架构?

架构师需要将自己对于现实问题理解抽象出模型,模型映射到计算,以达到对现实问题的求解。所以说架构师是介于领域问题与系统之间的桥梁,既要熟悉业务(对业务敏感),也要熟悉系统。

架构师如何架构
架构师如何架构

架构师做架构其中之一就是需要产出设计文档给相关方看,架构师的第一个成果就是架构设计文档,架构设计文档由架构视图组成,架构视图当然就是业界鼎鼎大名的4+1视图,这个视图传递了一个很好的设计理念就是都是围绕这场景来说事情,每一个视图展示了一个面,四个面和一个中心就构成了一个完整的问题解。

架构视图
架构视图

架构师常用的建模语言就是 UML 统一建模语言,UML图分为两大类分别为静态图(用例图、类图、组件图、部署图)和动态图(序列图、活动图、状态图),而我们只需要掌握其中这七种就足以应付工作中的场景。在软件开发的三个阶段中需要的 UML 图如下所示:

  • 需求分析:用例图、状态图、时序图、活动图
  • 概要设计:部署图、系统级时序图、系统级活动图、组件图、组件时序图、组件活动图
  • 详细设计:类图、类时序图、状态图、方法活动图

所谓的图只是为了落地架构师的设计理念,以便于验证该设计是否可行,一个优秀的架构师一定清楚面对的受众是谁,每一种图都有其对应的受众。架构师可以通过组件相关的图很好的把控项目的进度,只因组件图的粒度可以拆的很细,这样前后依赖、时间都可以掌控,组件相关图也是开发任务分配单位。即使有了各种图,还需将公司的业务背景及战略目标融入设计文档,这样才能让人理解清楚前因后果,当然设计文档中还需体现非功能的需求,这些需求不可忽略,也是重之中。

《[总结]架构师如何做架构?》的相关评论

发表评论

必填项已用 * 标记,邮箱地址不会被公开。