写点什么

架构师训练营 第一周 总结 架构师与架构

用户头像
CR
关注
发布于: 2020 年 06 月 10 日

一、架构师

架构师是什么

架构师是做架构设计、对系统架构负责的那个人,架构师是一个角色而不是一个职位。平时作为程序员,更多地关注代码如何编写、组件如何设计,较少关注整个系统的架构为什么这么设计。要成长为架构师,就应该去思考系统涉及的相关方有哪些,面临的问题和挑战是什么,可以用什么方法去解决,为什么要这样设计,当我们开始用架构师的思维去思考,去设计系统时,实际上开始承担架构师的角色了。所以说,架构师不在于你有没有这个title,而在于你是不是在做架构。



架构师的主要职责

当我们了解架构师是一个什么角色后,我们应该了解架构师需要承担哪些职责:

  • 编写架构设计文档

  • 开发编程框架

  • 重构软件代码

  • 设计系统架构

  • 进行技术选型,解决技术应用中的问题

  • 优化系统性能

  • 模块分解与重构

  • 保障系统安全与高可用

  • 技术创新

  • 沟通管理

...



架构师的主要能力

作为一名架构师,我们最重要的能力在于一个字“”,要领悟事情的本质,抓住事情的关键,从而有效地解决问题,设计出优良的架构。

所谓道可道,非常道,我们需要掌握更具体的能力,才能更好地去“悟”,例如:编程能力、基础技术掌握能力、常用技术产品的理解与应用能力、性能优化与分析故障的能力、常用架构模式和框架的理解与应用能力、建模能力、业务理解能力、模块拆解能力、快速学习能力、沟通与领导能力等,通过提高这些方面的能力,能让我们更好地领悟如何架构,而我们领悟的同时,也是在不断提升这些具体的能力。

二、软件架构



软件架构 = {元素,形式,关系/约束}



架构视图

架构是给相关方看的,各个相关方的关注点不一样,因此,作为架构师,应该用不同的视图向不同的相关方去表达架构。比较著名的是 4+1架构视图:



4+1架构视图包含:

  • 逻辑视图:面向客户、用户、管理者,描述系统的功能元素及元素之间的交互,用于划分开发组织等

  • 过程视图:面向性能优化人员,描述系统运行时情况

  • 物理视图:面向系统集成商、系统运维人员,描述逻辑组件到物理部署的关系

  • 开发视图:面向开发、测试人员,描述如何开发实现,用于指导开发

  • 场景视图:面向用户、设计、开发人员,从场景的角度阐述上述架构元素如何运作



模型

当我们去开发一个系统,是为了解决某个领域特定问题。而问题的求解过程,就是从领域问题到计算机系统的映射。而这个映射,我们可以通过模型去表达。模型是一个系统的完整抽象,蕴含着人们对某个领域问题的解决方案、理解与认识。通过建模,可以更低成本地证明问题能否解决。

常见的建模方式分为静态建模和动态建模,可以通过UML统一建模语言表达,在软件开发过程中使用的常用的UML图如下:

需求分析:用例图、状态图、时序图、活动图

概要设计:部署图、系统级时序图、系统级活动图、组件图、组件时序图、组件活动图

详细设计:类图、类时序图、状态图、方法活动图



一般情况下,我们不必严格按照UML的规范画图,从领域驱动设计的角度来说,只要模型能够清晰地表达如何解决领域问题即可,这种非严格的表达也可认为是一种UML方言,是与相关方达成的统一语言。



用户头像

CR

关注

还未添加个人签名 2018.09.23 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
赞!你也“悟”了!
2020 年 06 月 12 日 16:06
回复
没有更多了
架构师训练营 第一周 总结 架构师与架构