什么是架构师
架构师负责着一个软件系统,从系统的设计到系统的部署,以及运维。
架构师主要在于职责,对整个软件系统架构负责的那个人,就是架构师。
比如,通常程序员关注于自己负责的服务,程序员就是这个服务的“架构师”,需要对服务进行类的设计,需要连接哪些服务,怎么部署等等。
那架构师就是对整个软件系统负责,需要关注整个软件系统的设计。
架构师的职责
由于架构师,需要对整个架构负责,则架构师需要
-
设计系统架构:
编写架构设计文档
开发编程框架
技术选型
软件重构 架构重构 模块分解 -
部署运维
保障系统安全与高可用
优化系统性能
大数据应用 -
技术创新
-
沟通管理
这个很重要。因为架构师管理着整个架构,需要协调开发测试运维等人员,以及外部资源的调度等等
架构师的主要能力
编程、基础技术,
建模,设计文档
常用技术产品原理与应用
常用架构模式和框架的原理与应用
业务理解以及模块拆解能力
性能优化、故障分析定位能力
快速学习,沟通与领导能力
软件架构
软件架构,是软件整体结构和组件的抽象描述,用于指导大型软件系统的各个方面的设计
需要明确
架构是给谁看的,给不同人看的架构是不一样的
因为,不同的人所关注的点是不一样的,比如 程序员,运维,上级,老板,甲方,等等
架构是用来指导不同的人去做事的,所以面对不同的人,要有不同的软件架构
架构视图
-
逻辑视图
相关方:客户,用户,开发的管理者,即不需要太关注细节的,只需要知道主要功能即可
比如,阿里云等开放接口的系统架构描述,指导该怎么使用 -
开发视图
相关方: 开发相关人员、测试人员
这个是需要指导怎么去开发测试,和逻辑视图相比,肯定要具体详细。
需要提供系统分层,分服务,包,框架,类,接口 等等
用途:指导开发 -
过程视图
相关方:性能优化,开发人员
提供进程、线程视图,以及线程间队列等等
指导运行时的系统状况,比如多少个进程,多少个线程,有哪些队列,怎么读写队列等等 -
物理视图
相关方:运维,系统集成
具体的物理组件的连接部署情况,包括网络等
指导部署,集成 -
场景视图
相关方:用户、设计、开发人员
某个具体场景的实现,比如用例图
怎么对软件进行设计建模
使用 UML 进行设计和建模
UML 几种图
- 部署图
- 组件图
- 用例图
用例图,应该详细到什么程度。目前感觉系统用例图只要写出大功能即可。当然,还是看需要,如果是写一个具体功能的用例,还是要详细点 - 状态图,活动图
- 序列图,协作图
- 类图,对象图,包图
其中的图,未必只能使用在一种场景中,比如状态图,可以用在需求分析中,也可以用在详细分析中
活动图也可以在需求分析中
UML图,也不必要每个功能,每个类都写出来,对于默认的通用的处理方式的, 可以不用写了。
如果说,有特殊的设计,不好理解的地方,再写对应的图即可,比如序列图,状态图,类图,等
UML 工具,综合下来,还是 starUML 好用
网友评论