软件架构的模式语言

Lobsters Hottest 论文

摘要

本文介绍了架构元模式,将软件架构模式概括为适用于本地和分布式系统的更广泛类别,并通过直观图表和陈旧的演示加以说明。

<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)。 如果您喜欢这本书或网站,请告诉您的朋友。*知识必须自由!*

相似文章

学习软件架构

Hacker News Top

一位软件工程师分享了学习软件架构的见解,强调组织架构与激励机制优先于代码本身,并结合 rust-analyzer 与科学计算代码的实例进行了说明。

优秀的架构不需要胡萝卜,也不需要大棒

Lobsters Hottest

这篇博客文章主张,良好的软件架构应当是不言自明且毫无阻力的,倡导采用 Netflix/Spotify 式的“铺平道路”模式,而非依赖强制性的治理委员会或嵌入式架构师。

设计模式很烂

Lobsters Hottest

本文认为设计模式被高估了,它们常常是对语言局限性不必要的变通,以Java为主要例子,并与Scala等更具表现力的语言进行对比。

代理模式

Hacker News Top

来自 Veso 的一份全面研究指南,详细阐述了已在主要 AI 智能体系统(Claude Code、OpenAI Codex、Gemini CLI 等)中趋同的通用架构模式,并提出了构建生产级智能体系统的 8 条基本假设。