软件架构概述

00:00
3 min Beginner 2026/6/14

软件架构定义、架构师角色、架构决策与架构文档。

1. 软件架构定义

1.1 什么是软件架构

软件架构是系统的高层设计决策,包括组织结构、行为模式、核心组件及其交互关系。

“Architecture is the decisions that you wish you could get right early in a project.” — Ralph Johnson

1.2 架构与设计的区别

维度架构设计
抽象层次系统级模块级
关注点全局约束和决策局部实现细节
变更成本极高较低
影响范围整个系统单个模块
决策者架构师开发者

1.3 架构的核心要素

要素说明
组件系统的构建块
连接器组件间的交互机制
约束组件和连接器的使用规则
配置组件和连接器的组合方式

2. 架构师角色

2.1 架构师职责

职责说明
技术决策选择技术栈和架构风格
质量保障确保系统满足质量属性
风险管理识别和缓解技术风险
沟通桥梁连接业务和技术团队
技术指导制定技术标准和规范
知识传承培养团队技术能力

2.2 架构师能力模型

技术深度 ──── 对特定领域的深入理解
技术广度 ──── 跨领域的技术视野
业务理解 ──── 将业务需求转化为技术方案
沟通能力 ──── 与不同角色有效沟通
决策能力 ──── 在不确定性下做出决策
领导力 ──── 引导团队走向正确方向

3. 架构决策

3.1 架构决策记录(ADR)

# ADR-001: 选择微服务架构

## 状态

已接受

## 背景

单体应用已无法满足业务快速增长的需求,团队规模扩大后协作效率下降。

## 决策

采用微服务架构,按业务域拆分服务。

## 理由

1. 独立部署:各服务可独立发布
2. 技术异构:各服务可选择合适技术栈
3. 团队自治:每个团队负责自己的服务
4. 弹性伸缩:按需扩展高负载服务

## 后果

- 增加运维复杂度
- 需要服务发现和API网关
- 分布式事务处理更复杂
- 需要更完善的监控体系

3.2 决策原则

原则说明
延迟决策在必须决策时再做决定
可逆性优先优先选择可逆的决策
证据驱动基于数据而非直觉
最简可行选择最简单的可行方案
适度设计满足当前需求,预留扩展空间

4. 架构文档

4.1 C4模型

层级视图受众关注点
Level 1系统上下文图所有人系统与外部的关系
Level 2容器图开发者/架构系统内部的容器
Level 3组件开发者容器内部的组件
Level 4代码开发者组件内部的

4.2 架构视图

视图说明关注
逻辑功能分解端用户
进程并发和同步集成
开发代码组织程序
物理部署拓扑运维

5. 架构反模式

模式症状解决方案
大泥球无清晰架构,代码纠缠逐步重构,引入分层
工程架构过于复杂YAGNI,简化设计
复制-粘贴架构服务结构完全相同提取共享/平台
供应商锁定依赖特定技术抽象层、供应商策略
架构黑洞架构决策不落地ADR + 代码审查

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式