1.何为软件架构?
软件架构,指从宏观角度说明一套软件系统的组成和特性。 架构设计与需求分析,概要设计,详细设计最大的区别在于“宏观”二字。要去架构师必须具有大局观,从全局角度思考问题。
2.软件架构包含哪些内容?
- 逻辑架构:软件要为哪些用户提供什么样的功能,架构设计中的所有决策来源于需求。架构设计不能搞经验主义。
- 数据架构:软件逻辑中的数据结构。功能性需求的核心是数据,所有业务流程都是围绕数据进行的。
- 开发架构:就是软件代码的层次骨架。
- 运行架构:软件在运行过程中的所体现出来的非功能需求。包括高性能,高可用,可扩展,安全等。
- 物理架构:软件的物理部署以及网络拓扑。
3. 架构师的职责?
3.1 架构师介于需求与研发中间的人
企业对架构师的要求:纪要技术好,也要懂业务 一名合格的架构师就需要多思考,多学习,有丰富的项目经验
3.2 架构师是统领全局的将军
3.3 架构师要作为技术大牛攻克技术难题
架构师要有一种“不吃不喝也要解决问题”的狠劲,一种见山开山,遇河架桥的精神去攻克技术难题。 但是人的精力是有限的,攻克问题不能架构师一个人单打独斗,团队中架构师往往起到指引方向的作用。比如指定明确的技术方向,落实主要的设计思路等。
3.4 架构师作为战略规划师去规划未来战略
拥有强大的战略眼光,能帮助企业进行技术规划,指定未来的技术发展方向。
根据侧重点,架构师可以分为以下几种类型:
- 解决方案架构师: 侧重沟通客户,理解业务,为客户指定技术解决方案。
- 系统架构师:能力更加均衡,负责从项目的需求分析到技术落地的全流程
- 平台架构师:更侧重于技术,将技术难题封装成开发平台,支撑业务系统
- 企业架构师:从具体项目中独立出来,更侧重于规划未来的技术战略
4.架构师的思维模式
- 宏观思维
- 抽象思维
- 实例化需求
5.如何成为顶级架构师?
5.1 能够将业务转换成技术
作为顶级架构师,必须具备超强的落地能力,能够将用户的业务需求落地到技术方案,帮助研发团队开发出用户愿意使用的产品和功能。通过对业务的理解,梳理业务流程,发掘用户痛点,然后落地到技术上,有针对性的指定技术方案。
5.2 能合理利用技术支撑业务
5.3 具备前瞻思维和战略思维
6. “5视图法”架构设计
怎样做高质量的架构设计呢?我们需要按照一定的章法,一步一步的进行,以避免遗漏关键内容。当面对复杂问题时,最有效的解决思路是“分而治之”,将复杂问题划分为多个相对独立的问题,分别进行考量,解决。在架构设计上同样的可以采用这种思路,即“5视图法”,将要设计的复杂系统从5个不同 的维度视图进行分析思考。
- 逻辑架构
- 数据架构
- 开发架构
- 运行架构
- 物理架构