】概念架构:系统设计的指路明灯)
文章目录一、核心知识点概念架构的3个关键知识点1概念架构是什么——设计思想的中转站知识点2概念架构的3个特征——直指目标、设计思想、重大选择知识点3概念架构设计的1个决定、4个选择——系统设计的骨架二、实战场景串联从关键需求到概念架构场景1基础环境准备——识别关键需求场景2核心功能实现——运用鲁棒图设计场景3关键质量实现——运用目标-场景-决策表设计场景4进阶场景适配——完成1个决定、4个选择三、总结概念架构的通用应用逻辑核心观点概念架构就像盖房子前的概念图不是详细施工图而是告诉你要盖什么样的房子。它是直指目标的设计思想、重大选择是关乎任何复杂系统成败的最关键的、指向性的设计。很多架构师都有这样的困惑架构设计从哪里开始是直接画系统架构图还是先想清楚设计思路其实架构设计应该从概念架构开始。概念架构就像盖房子前先画的概念图不是详细的施工图而是告诉你要盖什么样的房子。本文通过实战案例帮你快速掌握概念架构的核心用法什么是概念架构它有什么特征如何设计一、核心知识点概念架构的3个关键在深入实战之前先搞懂3个核心知识点它们是理解概念架构的基础。知识点1概念架构是什么——设计思想的中转站通俗理解概念架构就像盖房子前的概念图告诉你要盖什么样的房子设计目标“用什么思路盖”设计思想“做哪些重大选择”重大决策但不告诉你具体怎么施工接口细节。核心作用直指系统设计目标不绕弯子体现设计思想不是功能堆砌包含重大选择关乎系统成败适用场景设计大中型系统时必须先有概念架构才能进行细化设计。就像盖房子必须先有概念图才能画施工图。知识点2概念架构的3个特征——直指目标、设计思想、重大选择通俗理解概念架构就像指路明灯必须直指目标不跑偏、“体现思想”有思路、“做出选择”有决策。核心作用直指目标直接指向系统设计目标比如跨平台复用、“高性能”、“简化开发”设计思想体现设计思想比如分层抽象、“垂直分离”、“三层封装”重大选择包含重大选择比如分布式架构还是集中式架构、“垂直分离还是水平分层”适用场景判断一个架构是不是概念架构就看它是否具备这3个特征。如果只是功能堆砌没有设计思想和重大选择就不是概念架构。知识点3概念架构设计的1个决定、4个选择——系统设计的骨架通俗理解概念架构设计就像搭骨架必须明确1个决定怎么划分系统和4个选择用什么风格、什么技术、怎么集成、怎么扩展。核心作用1个决定划分顶级子系统系统怎么分解4个选择架构风格选型用什么架构模式、开发技术选型用什么技术栈、集成技术选型怎么集成外部系统、二次开发技术选型怎么支持扩展适用场景设计概念架构时必须明确这5项缺一不可。它们是系统设计的骨架后续的细化设计都基于这个骨架。二、实战场景串联从关键需求到概念架构搞懂了核心知识点下面看实战中怎么用这些知识点解决问题。我们通过一个在线书店系统的案例串联概念架构设计的完整过程。场景1基础环境准备——识别关键需求真实业务场景设计一个在线书店系统需要支持用户浏览图书、搜索图书、下单购买等功能。核心步骤从功能需求和质量需求中识别关键需求。关键操作识别关键功能从功能需求中确定关键功能浏览热门图书高频功能搜索图书核心功能下单购买核心业务识别关键质量从质量需求中确定关键质量高性能大量用户同时访问可扩展性业务量会增长可用性系统不能经常崩溃为什么这么设计概念架构设计不是面面俱到而是聚焦关键需求。只有关键功能和质量才会影响概念架构的设计。就像盖房子你不需要考虑所有细节只需要考虑要盖几层、用什么结构这些关键问题。对应知识点这对应知识点1——概念架构直指目标。关键需求就是目标概念架构必须直指这些目标。场景2核心功能实现——运用鲁棒图设计真实业务场景针对搜索图书这个关键功能设计概念架构。核心步骤运用鲁棒图从功能需求过渡到设计概念。关键操作识别边界对象用户界面、搜索界面作用负责接收用户输入显示搜索结果识别控制对象搜索控制、输入验证、结果展示作用控制搜索的执行流程识别实体对象作者名字、图书信息、搜索结果作用存储和传递数据为什么这么设计鲁棒图是连接需求与设计的桥梁。从用例规格说明用户如何使用系统到设计概念系统内部如何实现有个看不见的鸿沟。鲁棒图通过3种元素边界、控制、实体帮助架构师跨越这个鸿沟。对应知识点这对应知识点3——概念架构设计的1个决定。通过鲁棒图可以发现系统需要哪些组件从而决定怎么划分系统。实战示例在线书店的按作者名字搜索功能用户输入作者名字 → 搜索界面边界对象 ↓ 检查输入合法性控制对象 ↓ 获得搜索条件控制对象 ↓ 获得搜索结果控制对象→ 图书信息实体对象 ↓ 显示搜索结果控制对象 ↓ 结果界面边界对象→ 用户看到结果关键发现通过增量建模发现架构级关键决策点决策点1图书信息是放在文件系统还是放在数据库如果放在文件系统需要文件系统访问纯B/S架构可能不够如果放在数据库可以用纯B/S架构决策点2搜索结果需要缓存吗如果热门搜索很多需要引入Cache提高性能场景3关键质量实现——运用目标-场景-决策表设计真实业务场景针对高性能这个关键质量设计概念架构。核心步骤运用目标-场景-决策表从模糊质量需求到具体设计决策。关键操作识别场景从质量需求中识别具体场景场景1大量用户同时浏览热门图书页面生成逻辑重复执行场景2图书信息存储为单一、大表搜索功能触发大量I/O开销场景3业务量增长系统出现性能瓶颈做出决策针对每个场景做出架构决策决策1热门图书页面静态化为HTML引入Cache决策2书目信息和图书详细信息分离存储决策3设计展现层、业务层、数据层为可独立部署的层便于分别做集群为什么这么设计从模糊质量需求如高性能到具体设计决策有个看不见的鸿沟。**场景技术是跨越这个鸿沟的跳板。**通过目标→场景→决策的逻辑可以将模糊的质量需求转化为具体的架构决策。对应知识点这对应知识点3——概念架构设计的4个选择。通过场景分析可以发现系统需要什么架构风格、什么技术栈从而做出选择。实战示例在线书店系统的高性能设计场景架构决策大量用户浏览热门图书热门图书页面静态化为HTML引入Cache图书搜索触发大量I/O书目信息和图书详细信息分离存储业务量增长系统出现性能瓶颈设计展现层、业务层、数据层为可独立部署的层便于分别做集群关键发现通过场景分析发现架构级关键决策点决策点1需要引入Cache层提高热门内容的访问速度决策点2需要分离存储优化I/O性能决策点3需要分层设计支持独立扩展场景4进阶场景适配——完成1个决定、4个选择真实业务场景综合关键功能和关键质量完成概念架构设计。核心步骤明确1个决定、4个选择形成概念架构。关键操作1个决定划分顶级子系统展现层用户界面、搜索界面、结果界面业务层搜索服务、订单服务、图书服务数据层图书数据库、缓存层4个选择架构风格选型分层架构展现层、业务层、数据层开发技术选型Java Spring MySQL Redis集成技术选型RESTful API如果需要集成外部系统二次开发技术选型插件机制如果需要支持扩展为什么这么设计概念架构设计必须明确这5项它们是系统设计的骨架。后续的细化设计都基于这个骨架。就像盖房子必须先确定几层、“什么结构”、“用什么材料”才能画施工图。对应知识点这对应知识点3——概念架构设计的1个决定、4个选择。通过鲁棒图和目标-场景-决策表可以发现系统需要哪些组件、什么架构风格、什么技术栈从而完成这5项设计。实战示例在线书店系统的概念架构┌─────────────────────────────────────┐ │ 展现层用户界面 │ │ 搜索界面、结果界面、订单界面 │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ 业务层业务逻辑 │ │ 搜索服务、订单服务、图书服务 │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ 数据层数据存储 │ │ 图书数据库、缓存层 │ └─────────────────────────────────────┘关键发现通过综合关键功能和关键质量形成概念架构设计目标高性能、可扩展性设计思想分层架构各层独立部署重大选择分层架构、Java技术栈、缓存机制三、总结概念架构的通用应用逻辑通过实战案例我们掌握了概念架构的核心用法。现在提炼一下通用应用逻辑概念架构设计的通用逻辑先识别关键需求关键功能关键质量→再运用鲁棒图设计功能发现组件→然后运用目标-场景-决策表设计质量做出决策→最后完成1个决定、4个选择形成概念架构。通俗比喻概念架构设计就像搭骨架必须先确定要搭什么样的骨架关键需求然后搭骨架的各个部分运用鲁棒图和目标-场景-决策表最后确定骨架的结构1个决定、4个选择。可落地的交付物关键需求清单列出关键功能和关键质量鲁棒图针对关键功能的鲁棒图目标-场景-决策表针对关键质量的目标-场景-决策表概念架构图展示1个决定、4个选择的概念架构图核心要点概念架构是直指目标的设计思想、重大选择不是功能堆砌而是有设计思想和重大选择概念架构有3个特征直指目标、设计思想、重大选择概念架构设计要明确1个决定、4个选择划分顶级子系统、架构风格选型、开发技术选型、集成技术选型、二次开发技术选型功能需求与质量需求并重左手功能鲁棒图右手质量目标-场景-决策表两手都要硬因此架构师是设计的行家里手有很多思想。但只有设计思想与目标联系时才可能取得成效。概念架构就是直指系统设计目标的设计思想和重大选择。通过运用鲁棒图和目标-场景-决策表架构师可以从关键需求出发设计出既满足功能需求又满足质量需求的概念架构。