
一、概述从“设计结果”到“设计过程”软件架构设计方法是指在架构设计过程中应遵循的原则、步骤、策略和最佳实践的集合。如果说12.2节让我们知道了“有哪些架构风格可选”12.3节让我们知道了“如何描述架构”那么本节的核心是到底该怎么一步步设计出好的架构对于系统分析师而言架构设计方法是你从“理论认知”走向“实战能力”的关键环节。你需要掌握的不是孤立的技巧而是一套系统化的思考框架和操作指南。架构设计方法的核心问题· 设计应该从哪儿开始遵循什么原则 · 如何将需求转化为架构决策 · 如何在多个方案中做出权衡 · 如何确保设计出来的架构是可实现的️ 二、详细讲解三大核心内容1️⃣ 架构设计三原则无论采用何种具体方法优秀的架构设计都遵循以下三大核心原则原则 核心思想 实践要点 合适原则 一切从实际场景出发匹配业务发展阶段 避免过度设计根据业务规模、团队能力、资源约束选择合适方案 简单原则 用最简单的解决方案解决问题KISS 复杂问题拆解为简单单元避免不必要的抽象和层次 演化原则 架构随业务发展不断演进 区分变化部分与不变部分持续迭代而非追求一步到位合适原则是首要原则。架构没有“最好”只有“最合适”。初创公司用微服务是自找麻烦大厂用单体是自缚手脚。简单原则强调KISSKeep It Simple, Stupid。简单的架构更容易理解、实现和维护复杂往往意味着更多出错的可能。演化原则承认架构设计不可能一蹴而就。好的架构不是设计出来的是演化出来的。要预留扩展点但不要过度预测未来需求。 速记口诀“合适简单演化三原则定方向过犹不及要记牢大道至简是良方”。2️⃣ 架构设计方法论架构设计方法论提供了系统化的设计步骤。常见的架构设计过程包含以下四个阶段阶段 主要活动 输入 产出 预备阶段 梳理业务需求了解真实业务目标 需求规格说明书、业务战略 架构目标定义、质量属性场景 定义阶段 确定关键质量属性识别约束条件 业务目标、技术现状 架构原则、约束清单 细化阶段 提出候选架构评估权衡做出决策 质量属性、约束 选定的架构方案 实现阶段 架构文档化指导后续开发 架构决策 架构文档、技术选型清单1预备阶段理解业务目标· 与业务干系人沟通明确系统要解决的核心业务问题 · 提取关键质量属性性能、安全、可用性、可维护性等 · 建立质量属性场景如“当1000人并发时响应时间小于2秒”2定义阶段明确约束与原则· 识别技术约束现有技术栈、团队技能、预算 · 识别业务约束上线时间、合规要求 · 制定架构设计原则如“数据必须加密存储”、“服务必须无状态”3细化阶段方案提出与评估· 基于架构风格知识库提出2-3个候选方案 · 使用ATAM等方法对各方案进行评估 · 在质量属性间做出权衡如性能vs安全性、一致性vs可用性 · 选定最终方案4实现阶段文档化与沟通· 使用41视图、C4模型等方式描述架构 · 记录架构决策及其理由Architecture Decision Records · 与开发团队沟通确保理解一致3️⃣ 主流架构模式详解在实际项目中架构设计往往需要选择或组合具体的架构模式。以下是几种当前主流的架构模式1分层架构Layered Architecture分层架构是最经典、最广泛使用的架构模式将系统按抽象级别划分为多层每层为上层提供服务调用下层。层名 职责 技术实现示例 表示层 用户界面交互 HTML/JS、移动端UI 业务层 核心业务逻辑 Spring、EJB 持久层 数据访问 MyBatis、Hibernate、JPA 数据层 数据存储 MySQL、Oracle、MongoDB优点· 关注点分离每层职责清晰 · 可替换性强只要接口不变可替换某层实现 · 标准化利于分工协作缺点· 可能引入性能损耗多层调用 · 层次划分有时困难 · 不适合高度复杂的业务逻辑2MVC模式MVCModel-View-Controller是一种将用户界面逻辑与业务逻辑分离的架构模式广泛应用于Web应用开发。组件 职责 模型 执行业务流程存储业务数据不依赖于视图和控制器 视图 展示模型中的数据同一数据可通过不同视图展示 控制器 接收用户输入转化为对模型方法的调用优点· 允许多种用户界面的扩展 · 易于维护模型可独立演化 · 功能强大的用户界面典型框架Spring MVC、Struts23SOA面向服务的架构SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元服务的架构模型。服务的设计原则· 明确定义的接口 · 自包含和模块化 · 粗粒度 · 松耦合 · 互操作性相关技术技术 作用 UDDI 服务的发布、查找和定位服务注册中心 WSDL 服务描述语言 SOAP 服务请求者和提供者之间的消息传输规范 REST 基于HTTP和XML进行通信降低开发复杂性提高可伸缩性4微服务架构微服务是一种将单体应用划分成一组小的服务、服务之间相互协作实现业务功能的架构风格。核心特征· 每个服务运行在独立进程中 · 服务间采用轻量级通信机制通常是HTTP/JSON · 每个服务围绕业务能力构建 · 能够通过自动化机制独立部署优势· 解决复杂性将庞大单体分解为一系列服务 · 独立开发开发者可自由选择技术栈 · 独立部署加快部署速度 · 独立扩展可根据服务规模独立扩展挑战· 并非所有系统都能转成微服务 · 部署复杂度增加容器技术如Docker可缓解 · 性能问题服务间通信延迟 · 数据一致性问题分布式事务5C/S架构与B/S架构架构类型 特点 优点 缺点 二层C/S 单一服务器客户端直接访问数据库 简单 服务器负荷重数据安全性差 三层C/S 增加应用服务器表示层、功能层、数据层分离 逻辑清晰、可维护性高、安全性好 复杂度增加 B/S架构 浏览器/Web服务器/数据库服务器三层C/S的一种实现 无需专用客户端节约开发成本 用户体验可能受限三层C/S的优点· 逻辑结构清晰提高可维护性和可扩展性 · 灵活选用平台和硬件系统 · 各层可并行开发 · 有效隔离表示层与数据层安全性高 三、重点总结与速记方法✅ 核心重点1. 架构设计三原则合适、简单、演化——指导一切架构决策的基本法则。 2. 设计四阶段预备、定义、细化、实现——从业务理解到文档输出的完整流程。 3. 分层架构最经典的模式表示层-业务层-持久层-数据层关注点分离。 4. MVC模式模型-视图-控制器分离用户界面与业务逻辑。 5. SOA面向服务的架构强调服务自治、松耦合、互操作。 6. 微服务将单体拆分为独立服务独立开发、独立部署、独立扩展但面临分布式复杂性挑战。 7. C/S vs B/SC/S客户端/服务器与B/S浏览器/服务器各有适用场景。⚡ 速记口诀1️⃣ 三原则“三字诀”“合适简单演化架构设计不离它”2️⃣ 设计四阶段“四步走”口诀“预备定目标定义立规矩细化做权衡实现成文档”3️⃣ 分层架构“四层”口诀“表业持数四层分关注分离职责明”4️⃣ MVC“三组件”口诀“模型管数据视图做展示控制器接输入”5️⃣ 微服务“三独立”口诀“独立开发独立署独立扩展解耦合”6️⃣ 微服务挑战“三难”口诀“部署复杂性能降数据一致难保障”7️⃣ 一句话总纲软件架构设计方法 三原则 四阶段 主流模式选型是让架构从“空中楼阁”落地为“可实施方案”的系统化过程。---掌握12.4节意味着你具备了架构设计的实战方法论——不仅知道有哪些风格可选更知道如何一步步设计出来以及如何在分层、MVC、SOA、微服务等模式中做出正确选择。