如何成为一个架构师?
>>架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心架构,并澄清技术细节、扫清主要难点的技术人员。
一、架构师的需要做的事
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
技术选型,解决技术使用中存在问题
性能优化
模块分解
系统安全与高可用
技术创新
沟通管理
二、架构师核心能力
三、架构的概念
主要表述了契合一个环境的系统的基本元素及元素之间关系构成的结构集,在环境中体现出来的基本属性,以及设计与演进的原则。
架构包括三个部分:
组成系统的基本元素、元素之间关系构成的结构集
基本属性
设计与演进原则
架构的五维能力:
架构支撑和反映了系统5个方面的基本能力,每个方面都反映了架构的一类关注点
开发与演进类属性:支撑系统能够快速、高效、高质量开发出来,并能够方便修改、重用,持续演进,相应的基本属性包括可构建性、可测试性、可演进性、可重用性和易学习性。
生态系统类属性:支撑系统构建开放、打造生态系统的能力,相应的基本属性包括开放性、可定制性、易集成性和兼容性。
交付类属性:支撑系统快速交付、快速部署的能力,相应的基本属性包括可供应性、可制造性和可部署性。
运行类属性:支撑系统运行维护的各种DFX属性,相应的基本属性包括可靠性、安全性、可服务性、性能、可伸缩性/可扩展性、节能减排和易用性。
功能属性:支撑系统提供有价值的功能特性的能力。
设计与演进需要怎么做,接着我们可以来了解一下架构需要怎么做架构?
四、架构需要怎么做架构?
架构师需要将自己对于现实问题理解抽象出模型,模型映射到计算以达到对现实问题的求解。所以说架构师是介于领域问题与系统之间的桥梁,既要熟悉业务(对业务敏感),也要熟悉系统。
架构师做架构其中之一就是需要产出设计文档给项目参与人员看,架构师首先要做到的是让其他人懂你的设计理念,框架是否稳定,能不能进行深层次业务扩展。接着下来让我们来看看一下架构设计文档。它由各种视图组成,架构视图当然就是业界鼎鼎大名的4+1视图,这个视图传递了一个很好的设计理念就是都是围绕这场景来说事情,每一个视图展示了一个面,四个面和一个中心就构成了一个完整的问题解。
架构师常用的建模语言就是UML统一建模语言,UML图分为两大类分别为静态图(用例图、类图、组件图、部署图)和动态图(序列图、活动图、状态图),而我们只需要掌握其中这七种就足以应付工作中的case。在软件开发的三个阶段中需要的UML图如下所示:
需求分析:用例图、状态图、时序图、活动图
概要设计:部署图、系统级时序图、系统级活动图、组件图、组件时序图、组件活动图
详细设计:类图、类时序图、状态图、方法活动图
所谓的图只是为了落地架构师的设计理念,以便于验证该设计是否可行,作为一个NB的架构师一定记住你面对的受众是谁,每一种图都有自己的受众,就好比你拿着刀背切西瓜,虽然能搞,但是别人看着别扭,明显的就是你用错了,可想而知效果肯定不好。架构师可以通过组件相关的图很好的把控项目的进度,只因组件图的粒度可以拆的很细,这样前后依赖、时间都是可以掌控的,组件相关图也是开发任务分配单位。既然有了各种图,还需将公司的业务背景及战略目标融入设计文档,这样才能让人理解清楚前因后果,当然设计文档中还需体现非功能的需求,这些需求不可忽略,也是重之中。
五、架构师如何奠定自己的地位?
1.夸夸其谈能帮你带来掌声。
2.解决棘手问题能帮你带来名声。
3.让被人依赖你写的代码
只有代码是不够的
大家都依赖的代码,一定是核心代码,凭什么让你写?
你写的代码,想让大家依赖,大家都知道一旦依赖你的代码,就会依赖于你,拼什么要依赖
优秀的架构师必须是软件开发的全才
(与全栈有点不同,不必整个完整的系统都能开发出来)
卓越的编程能力
解决棘手问题的能力
广阔的知识面
洞悉技术背后的本质和规律
沟通和打动人心的能力
评论