软件架构的模式语言
摘要
本文介绍了架构元模式,将软件架构模式概括为适用于本地和分布式系统的更广泛类别,并通过直观图表和陈旧的演示加以说明。
<p><a href="https://lobste.rs/s/mkpgrk/pattern_language_software_architecture">评论</a></p>
查看缓存全文
缓存时间: 2026/09/01 19:43
# 软件架构的模式语言
来源:https://metapatterns.io/
软件架构中的各种模式相互关联(*没有哪种模式是孤岛*)。你很难用一种纯粹的架构风格来构建一个产品,而它能在岁月中不受影响地存活下来的概率微乎其微。软件是迭代成长并适应其环境的。
*《架构元模式》*(https://leanpub.com/metapatterns)一书专注于模式及其相互关系。它将数百种独立的模式归纳为几个更宽泛的类别(*元模式* (https://metapatterns.io/introduction/metapatterns/)),每个类别都可以应用于本地或分布式系统,以特定方式改变其属性。*如此循环往复。*
书中通过直观的 NoUML 图表(https://metapatterns.io/introduction/about-this-book/#diagrams)进行了丰富的图解。内容精炼,且完全不含 AI 生成内容。
*祝阅读愉快!*
## 演示文稿(已过时) (https://speakerdeck.com/denyspoltorak)
模式之模式 (https://speakerdeck.com/denyspoltorak/patterns-of-patterns-c322149c-fcdd-4df6-8c6c-f273c7ab17dd)
基础架构 (https://speakerdeck.com/denyspoltorak/basic-architectures)
架构扩展 (https://speakerdeck.com/denyspoltorak/architectural-extensions-c3e506c0-6472-4e2c-8113-b3d8ffa20d63)
碎片化架构 (https://speakerdeck.com/denyspoltorak/fragmented-architectures-bf4d129f-4cd1-46bf-9fb0-248879872b25)
实现模式 (https://speakerdeck.com/denyspoltorak/implementation-patterns)
---
## 简介 (https://metapatterns.io/introduction/)
模式太多了!
关于本书 (https://metapatterns.io/introduction/about-this-book/)
抽象、子域和分片轴,中间文字为:你的模式在此。
元模式 (https://metapatterns.io/introduction/metapatterns/)
单体架构、分层、插件、层次结构和服务,置于一个展示分层和子域划分的坐标系中。
系统拓扑 (https://metapatterns.io/introduction/system-topologies/)
## 软件架构基础 (https://metapatterns.io/foundations-of-software-architecture/)
三个组件,每个封装一个节点图。
模块与复杂度 (https://metapatterns.io/foundations-of-software-architecture/modules-and-complexity/)
三层系统中的消息传递,底层对硬件进行多次调用。
作用力、异步性与分布式 (https://metapatterns.io/foundations-of-software-architecture/forces--asynchronicity--and-distribution/)
控制型、交互型、流式与计算型系统。
四种软件类型 (https://metapatterns.io/foundations-of-software-architecture/four-kinds-of-software/)
一个客户端位于三个服务之上,组件之间有问号。
安排通信 (https://metapatterns.io/foundations-of-software-architecture/arranging-communication/)
## 基础元模式 (https://metapatterns.io/basic-metapatterns/)
一个单一组件中融合了应用、领域规则、通用代码和数据的单体系统。
单体架构 (https://metapatterns.io/basic-metapatterns/monolith/)
相互连接的分片。
分片 (https://metapatterns.io/basic-metapatterns/shards/)
包含三层的系统:应用层、领域层和数据库层。
分层 (https://metapatterns.io/basic-metapatterns/layers/)
服务架构。
服务 (https://metapatterns.io/basic-metapatterns/services/)
由输入、三个处理步骤和输出构成的管道。
管道 (https://metapatterns.io/basic-metapatterns/pipeline/)
## 扩展元模式 (https://metapatterns.io/extension-metapatterns/)
通过中间件连接的服务。
中间件 (https://metapatterns.io/extension-metapatterns/middleware/)
访问共享仓库的服务。
共享仓库 (https://metapatterns.io/extension-metapatterns/shared-repository/)
位于客户端和服务之间的代理。
代理 (https://metapatterns.io/extension-metapatterns/proxy/)
被编排的服务。
编排器 (https://metapatterns.io/extension-metapatterns/orchestrator/)
三明治架构。
三明治 (https://metapatterns.io/extension-metapatterns/sandwich/)
## 碎片化元模式 (https://metapatterns.io/fragmented-metapatterns/)
三层服务。
分层服务 (https://metapatterns.io/fragmented-metapatterns/layered-services/)
多语言持久化。
多语言持久化 (https://metapatterns.io/fragmented-metapatterns/polyglot-persistence/)
为前端准备的后端。
为前端准备的后端 (https://metapatterns.io/fragmented-metapatterns/backends-for-frontends--bff-/)
面向服务的架构包含服务的层次结构。
面向服务的架构 (https://metapatterns.io/fragmented-metapatterns/service-oriented-architecture--soa-/)
一个有三层的层次结构。顶层有一个组件,其下有两个组件,底层有五个组件。
层次结构 (https://metapatterns.io/fragmented-metapatterns/hierarchy/)
## 实现元模式 (https://metapatterns.io/implementation-metapatterns/)
插件架构。
插件 (https://metapatterns.io/implementation-metapatterns/plugins/)
六边形架构,其核心与输入、输出、数据库和库之间通过适配器连接。
六边形架构 (https://metapatterns.io/implementation-metapatterns/hexagonal-architecture/)
在微内核上运行的应用程序。
微内核 (https://metapatterns.io/implementation-metapatterns/microkernel/)
通过网状网络连接的应用程序。
网状网络 (https://metapatterns.io/implementation-metapatterns/mesh/)
## 分析 (https://metapatterns.io/analytics/)
共享数据集的服务、管道、操作系统中带设备驱动的依赖反转,以及客户端与服务之间的适配器。
架构模式比较 (https://metapatterns.io/analytics/comparison-of-architectural-patterns/)
各种被称为单体架构的系统。
模糊模式 (https://metapatterns.io/analytics/ambiguous-patterns/)
一个循环,包含以下架构:单体架构、分层、分层服务、与被编排的分层服务交互的三明治单元,以及带有两个数据库的分层架构。
架构与产品生命周期 (https://metapatterns.io/analytics/architecture-and-product-life-cycle/)
三个服务,上方有人和行李的队列,下方是带有火车站和火车的运输层。
架构模式的现实世界启发 (https://metapatterns.io/analytics/real-world-inspirations-for-architectural-patterns/)
维护项目的痛苦程度取决于项目规模,不同的架构对不同的项目规模最为优化。
软件架构的核心 (https://metapatterns.io/analytics/the-heart-of-software-architecture/)
## 附录 (https://metapatterns.io/appendices/)
致谢 (https://metapatterns.io/appendices/acknowledgements/)
参考书目 (https://metapatterns.io/appendices/books-referenced/)
版权 (https://metapatterns.io/appendices/copyright/)
免责声明 (https://metapatterns.io/appendices/disclaimer/)
架构的演进 (https://metapatterns.io/appendices/evolutions-of-architectures/)
元模式的格式 (https://metapatterns.io/appendices/format-of-a-metapattern/)
术语表 (https://metapatterns.io/appendices/glossary/)
变更历史 (https://metapatterns.io/appendices/history-of-changes/)
模式索引 (https://metapatterns.io/appendices/index-of-patterns/)
---
## 系统拓扑图
系统拓扑图。垂直轴为分层划分,水平轴为服务划分
---
## 本书
《架构元模式》封面
本网站是我的书籍*《架构元模式:软件架构的模式语言》*的在线版本,可从 GitHub (https://github.com/denyspoltorak/metapatterns) 或 Leanpub (https://leanpub.com/metapatterns) 下载。
它是一本架构模式汇编,根据模式的结构和功能将其整理成树状层次结构。这使得可以将数百种模式(https://metapatterns.io/introduction/metapatterns/)归纳为少于 20 个类别,并探索每个类别的共同特征、适用性和性能。
它还包括补充主题,从对复杂性本质的讨论(https://metapatterns.io/foundations-of-software-architecture/modules-and-complexity/)到对编排(https://metapatterns.io/foundations-of-software-architecture/arranging-communication/orchestration/)、编舞(https://metapatterns.io/foundations-of-software-architecture/arranging-communication/choreography/)和通过共享数据集成(https://metapatterns.io/foundations-of-software-architecture/arranging-communication/shared-data/)的比较。此外,还有广泛的演进(https://metapatterns.io/appendices/evolutions-of-architectures/)展示了系统在不同作用力下可能如何变化。
*《架构元模式》*完全不含 AI 生成内容,共 440 页,包含数百张框线图(https://metapatterns.io/introduction/about-this-book/#diagrams)。
如果您喜欢这本书或网站,请告诉您的朋友。*知识必须自由!*
相似文章
学习软件架构
一位软件工程师分享了学习软件架构的见解,强调组织架构与激励机制优先于代码本身,并结合 rust-analyzer 与科学计算代码的实例进行了说明。
优秀的架构不需要胡萝卜,也不需要大棒
这篇博客文章主张,良好的软件架构应当是不言自明且毫无阻力的,倡导采用 Netflix/Spotify 式的“铺平道路”模式,而非依赖强制性的治理委员会或嵌入式架构师。
设计模式很烂
本文认为设计模式被高估了,它们常常是对语言局限性不必要的变通,以Java为主要例子,并与Scala等更具表现力的语言进行对比。
代理模式
来自 Veso 的一份全面研究指南,详细阐述了已在主要 AI 智能体系统(Claude Code、OpenAI Codex、Gemini CLI 等)中趋同的通用架构模式,并提出了构建生产级智能体系统的 8 条基本假设。
@tom_doerr: 全面软件架构术语思维导图 https://github.com/kimtth/software-architect-mindmap…
一个精心策划的GitHub仓库,包含涵盖软件架构术语、云计算、数据科学和开发者资源的全面思维导图和参考合集。