1. 软件架构认知

1.1 组成派和决议计划派

组成派

  • 组件:代码包,模块,范畴,CBM,SOA
  • 软件体系架构:就是描绘核算组件和组件的交互
  • 架构规划:拆解、界说、相关组件,画图和完结

决议计划派

  • 架构的真理是由架构决议计划,是才智和思想
  • 软件体系架构:由一个个决议计划组成的有机整体

IT界的莫扎特

  • 桥梁:从“产品”听众获取创意

  • 指引:指引“研制”乐队完结演奏

  • 切割:将长篇高文切割成乐章

  • 交互:将乐章和声部交叠协奏

  • 决议计划:在思考中挣扎,在决议计划中完美

  • 演进:逐步优化

面试

作为架构师,你的日常作业主要有哪些?

  • 作业广度;组成和决议计划;莫扎特6高文用
  • 加分项:办法论完好,新架构框架,新技能框架

作为架构师,有什么推重的书或者大师?

  • 学习才干、知识体系
  • 加分项:体系书本、新技能书本,大师互动分享

你在架构规划进程中的难点?

  • 事例深度;决议计划派思路,莫扎特6高文用触发
  • 加分项:决议计划依据,理论-实际-理论

1.2 软件架构的意义

1.2.1 架构是项目干系人进行沟通的手法

语境不同,态度不同,渠道失真

SWOT 剖析

架构师1-架构认知、核心能力和基本原则

1.2.2 架构有助于循序渐进的原型规划

  • 拆迁者形式:一次性全部搬迁

    架构师1-架构认知、核心能力和基本原则
  • 绞杀者形式:一个一个模块进行搬迁
架构师1-架构认知、核心能力和基本原则
  • 补葺者形式:
架构师1-架构认知、核心能力和基本原则

习惯度函数

  • 原子 vs 整体性习惯度函数
  • 触发式 vs 持续式习惯度函数
  • 静态 vs 动态习惯度函数
  • 自动 vs 手动习惯度函数
  • 暂时 vs 预设习惯度函数

1.2.3 SWOT剖析

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

1.2.4 约束条件

  • ADMEMS矩阵

    架构师1-架构认知、核心能力和基本原则
  • RAID矩阵

    架构师1-架构认知、核心能力和基本原则
  • 那些质量最中心

    • 扩展性、功用、可用性、安全性、耦合性
    • 可操作性、可重用性、伸缩性、可维护性、易用性、可移植性

1.2.4 架构和安排结构

  • 怎么处理环境问题?开发、QA和生产不匹配
  • 怎么处理耦合问题?凤凰项目和传统体系耦合
  • 怎么决绝资源公用问题?要害人员疲于在多项目中切换
  • 怎么满意峰值需求?突发性事务需求、功用测验需求
  • 怎么处理安全问题?最小价值完结安全合规审计

1.2.5 架构可复用、可传递的模型

  • 办法论复用(ABSD、DSSA、AT、EA、TOGAF)
  • 模型复用(UML、SOA、CBM)
  • 工件复用(素材、图片、表格、图标、文件)

架构复用

  • 剪裁(三七准则,保留30%仍是70%)
  • 架构资产更新(内部资产库,外部架构社区)

1.2.6 面试

  1. 标题:作为架构师,遇到部分抵触怎么处理? 题眼:决议计划派,语境、态度、沟通渠道处理,架构决议计划

    加分项:办法论完好(通用言语、RASCI)决议计划、SWOT剖析)

  2. 作为架构师,平常规划重视那些要素? 质量(扩展性、功用、可用性、安全性、耦合性) 加分项:多角度剖析,实际事例侧重点剖析

  3. 怎么处理新老架构之间的抵触? 题眼:处理技能债,架构演进策略 加分项:多形式运用(拆迁、补葺、绞杀)、抵触预防

  4. 作为架构师,选择一个你的实战项目,描绘运用架构怎么随着安排架构的改变而演进?

  5. 选择一个项目,描绘该项目中,你怎么选择、复用和剪裁合适的架构规划框架、规划形式、架构风格、软件包?

1.3 依据软件架构的软件开发ABSD

  • ABSD办法论:功用分化、架构风格、软件模板、递归
  • 什么是架构的真实驱动:事务、质量、功用需求
  • 详细完结:需求、规划、文档化、复审、完结、演化

需求驱动

架构师1-架构认知、核心能力和基本原则

四大基石

  • 功用分化:运用已有的依据模块的内聚和耦合技能
  • 架构风格:选择架构风格来完结质量和事务需求
  • 软件模板:描绘软件元素在同享服务和底层架构的根底上,怎么进行交互
  • 递归:清晰界说迭代的每一个进程

自顶向下功用分化

架构师1-架构认知、核心能力和基本原则

体系结构6大进程

架构师1-架构认知、核心能力和基本原则

需求进程

架构师1-架构认知、核心能力和基本原则

面试题

  1. 对于新事务,怎么完结一个完结的架构规划流程? 题眼:架构规划办法论(如ABSD的需求、规划、文档化、复审、完结、演化) 加分项:能将规划准则、架构风格和演化进程描绘清楚

  2. 怎么在架构规划中选择合适的软件风格和软件模板? 需求驱动论(功用、质量、约束) 加分项:能结合实际项目,描绘怎么依据需求选择风格和模板

1.4 依据特定范畴的软件架构开发DSSA

  • DSSA办法论:特定问题域的运用模型
  • 范畴具有普遍性、笼统性、重用性
  • 剖析、规划、完结、迭代
架构师1-架构认知、核心能力和基本原则

DSSA根本活动

架构师1-架构认知、核心能力和基本原则

建立进程

架构师1-架构认知、核心能力和基本原则
#### 三层模型
架构师1-架构认知、核心能力和基本原则

范畴剖析办法和人员分工

架构师1-架构认知、核心能力和基本原则
  • 范畴专家:产品司理-需求规约、范畴字典
  • 范畴剖析人员:体系剖析员、产品司理、企业架构师
  • 范畴规划人员:运用架构师、本身程序员-软件重用和范畴规划
  • 范畴完结人员:老带新形式

面试题

  1. 描绘一下你在大型架构规划中的责任,以及怎么和其他部分同事配合? 题眼:人员分工、架构师沟通、架构师责任、组件和决议计划 加分项:结合特定办法论(如ABSD、DSSA 、AT等)

  2. 描绘一下对范畴架构的了解? 题眼:范畴驱动模型、DSSA范畴架构开发办法 加分项:能将事务映射到范畴,并复用现有架构元件

  3. 描绘一下你们公司的事务模型? 题眼:范畴驱动模型,本公司中心域DSSA软件架构 加分项:能将地点工作的范畴DSSA软件架构解说清楚

1.5 架构思想办法论AT

2. 架构师中心才干

2.1 学了这么多技能,为啥还成不了架构师?

  1. 三观培育 技能 -> 事务 (钱) 事务驱动性公司

    架构师1-架构认知、核心能力和基本原则
  2. 目标:高并发、高可用、可扩展性、快速改变、安全性、本钱操控

  3. 十项全能

    架构师1-架构认知、核心能力和基本原则

  4. 打破职位边界:技能人员、产品司理、项目办理(落地

  5. 刻画三维

    架构师1-架构认知、核心能力和基本原则
  6. 全面开展

架构师1-架构认知、核心能力和基本原则
  1. 走到聚光灯下
    • 跳出舒适区:活跃跑位才有时机
    • 自动承担:自动承担一个项目,为成果担任
    • 表达主意:没有主意,仍是主意太少
  2. 做让事务部分最惦记的技能人员,才干升任架构师

面试

  1. 大型运用中架构规划的考量点 高可用、吞吐量、扩展性、快速改变、本钱平和和安全性
  2. 工作生涯规划的问题 初期强调技能道路,远期转办理道路、培育软实力 事务重要性(技能调研,产品才干,大局观、影响力的构建)
  3. 什么特质使你从一个团队脱颖而出? 软硬实力+事务才干

2.2 架构师开展方向

运用范畴架构师

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

代码是榜首生产力

了解事务,需求剖析与拆解(事务了解层次)

架构师1-架构认知、核心能力和基本原则

事务架构师

架构师1-架构认知、核心能力和基本原则

技能计划最佳实践。不要小看事务,懂事务的架构师才值钱

架构师1-架构认知、核心能力和基本原则

架构师1-架构认知、核心能力和基本原则

体系架构师/企业架构师

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

技能道路和演进

架构师1-架构认知、核心能力和基本原则

技能生态扩张事例

  • 技能平台输出道路:由内向外
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
  • 事务平台输出道路:由外向内 :微信-小程序

推动项目落地

架构师1-架构认知、核心能力和基本原则

和谐才干:共同利益,资源,有打法,厚脸皮

面试

  1. 个人工作生涯规划 架构师方向是一个不会犯错的答案

  2. 对架构师才干模型的知道? 事务+技能 事务层面(了解事务,需求剖析和拆解,事务对接,范畴治理) 技能层面(单兵才干(深度和广度)、技能选型、有码在手、组件和模块化结构)

  3. 地点工作的技能开展趋势\事务开展趋势? 敞开平台是BAT的战略方向 中台化的看法:肯定公司的事务方向、学习工作榜首的经验来回答

  4. 项目快速落地? 优先级+时间表+和谐才干

2.3 化技能为生产力

架构师1-架构认知、核心能力和基本原则

2.3.1 拆解技能难题-三段论

以大化小

架构师1-架构认知、核心能力和基本原则

责任范畴区分

架构师1-架构认知、核心能力和基本原则

分层构建处理计划

架构师1-架构认知、核心能力和基本原则

推演作业中的处理计划,总结沉积办法论

2.3.2 处理问题从转换思想开始

拥抱改变

架构师1-架构认知、核心能力和基本原则

2.3.3 面试题

  1. 讲一讲你在项目当中碰到的难题 强技能导向,不要将推动时分的困难

  2. 你是怎么处理的? 有思考有打法:三段论; 事务背景-技能难点-拆解问题以大化小; 学到了什么

2.4 环绕事务做技能架构

2.4.1 技能助力事务的两个方向

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

2.4.2 自建体系 vs 外包收购

架构师1-架构认知、核心能力和基本原则

投入收益曲线

架构师1-架构认知、核心能力和基本原则
安稳性++ 风险阻隔

研制资源平衡

架构师1-架构认知、核心能力和基本原则
  • 同质化 vs 中心事务
  • 掌握中心技能:直接盈余事务,术业有专攻

以新零售事务为例:

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

事务特点拟定技能开展道路

  • 阿里系
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
  • 抖音系
架构师1-架构认知、核心能力和基本原则

面试题

  1. 谈一谈工作开展?根底平台类?or 事务类 10年前:到技能强的部分去(情怀) 技能日新月异 现在:到事务复杂的部分(实际) 真实有价值在事务,尖端绩效都是事务团队

  2. 聊一聊详细项目 事务为先:先让面试官明白你的事务 技能主线:为什么选用这个技能?和事务的联系 幻想空间:未来的改善点,事务量double架构计划

2.5 拟定技能开展道路图

2.5.1中长期的技能架构道路图

  1. 短期:强事务驱动
架构师1-架构认知、核心能力和基本原则
  1. 中期:承上启下
架构师1-架构认知、核心能力和基本原则
  1. 远期:面向未来
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

2.5.2 规划面向未来的架构

架构师1-架构认知、核心能力和基本原则

挑战:用户量级的增加
面向未来:容量规划 底层架构

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

面试题

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3. 架构规划准则和规约

3.1 架构规划准则和规约

3.1.1 根本准则

敞开关闭准则

架构师1-架构认知、核心能力和基本原则

对修正关闭,对扩展敞开

简单说:就是不修正原有完结类,而是新写完结类。

缺陷:会导致代码臃肿。

单一责任

一个类只做一件事

依靠倒置准则

以笼统为基准比以细节为基准搭建起来的架构要安稳得多,因而大家在拿到需求之后,要面向接口编程,先顶层再细节来规划代码结构。

接口阻隔准则

接口阻隔准则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不运用单一的总接口,客户端不应该依靠它不需求的接口。

接口阻隔准则和单一责任准则差异?

接口阻隔:指的接口

单一责任:指的是类和办法

迪米特法则

迪米特准则(Law of Demeter LoD)是指一个目标应该对其他目标保持最少的了解,又名最少知道准则(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合

里氏替换准则

组合和聚合准则

架构师1-架构认知、核心能力和基本原则

3.1.2 规划高并发体系

局部并发准则

架构师1-架构认知、核心能力和基本原则

服务化拆分

架构师1-架构认知、核心能力和基本原则

3.1.3 高可用体系

  • 限流
  • 降级
  • 弹性核算
  • 流量切换
  • 回滚

3.1.4 简单轻量的架构

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3.1.5 面试

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

研讨各类技能文章,了解高并发事务的处理计划: 红包,春晚红包,大局发号器,秒杀,抢单

3.2 架构规划准则

3.2.1 微服务运用服务拆分

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3.2.2 不同维度对服务拆分

压力模型

架构师1-架构认知、核心能力和基本原则

主链路规划

架构师1-架构认知、核心能力和基本原则

范畴模型DDD

3.2.3 新零售事务的微服务拆分

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3.2.4 了解微服务的无状态

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3.2.5 接口版别操控完结向后兼容

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3.2.5 可用性-流量整形

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

3.2.6 网关层限流和分布式限流

架构师1-架构认知、核心能力和基本原则

3.2.7 数据一致性-幂等性

架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则
架构师1-架构认知、核心能力和基本原则

面试

架构师1-架构认知、核心能力和基本原则