EnglishРусский Map

Архитектурные метапаттерны

title
Архитектурные метапаттерны
type
summary
summary
Бесплатная книга и сайт Дениса Полторака: сотни архитектурных паттернов классифицированы менее чем в 20 метапаттернов
tags
software-architecture, design-patterns
created
2026-09-14
updated
2026-09-14
lang
ru
translation_of
metapatterns
source_updated
2026-09-14
translated
2026-09-14
translator
lllm/antigravity/gemini-3.7-flash-medium

Architectural Metapatterns: The Pattern Language of Software Architecture - книга Дениса Полторака, а metapatterns.io - её онлайн-версия architectural-metapatterns. Сохранённый источник содержит только главную страницу сайта: оглавление со схемой к каждой главе и краткое описание. На этой странице зафиксировано, как сборник позиционирует себя и как он устроен. Главы с описанием самих паттернов пока не обрабатывались.

Исходная идея

Главная страница открывается тезисом "no pattern is an island" (ни один паттерн не существует сам по себе). Архитектурные паттерны взаимосвязаны, продукт редко удаётся построить в одном чистом стиле, а шанс того, что этот стиль переживёт годы итеративного развития без искажений, по оценке автора, ничтожно мал. Ответ книги - изучать паттерны через их взаимосвязи. Сотни отдельных паттернов упорядочиваются в древовидную иерархию по структуре и функциям. Это объединяет их менее чем в 20 классов, названных метапаттернами, после чего для каждого класса разбираются общие черты, применимость и производительность. Метапаттерн описывается как приём, который можно применить к локальной или распределённой системе, чтобы заданным образом изменить её свойства, а затем применить снова.

Схема под названием "The map of system topologies" размещает архитектуры на двух осях: разделение на слои по вертикали и разделение на сервисы по горизонтали. На схеме метапаттернов во введении вместо этого используются три оси: абстракция, поддомен и шардирование.

Структура книги

Во введении рассматриваются сама книга, идея метапаттернов и топологии систем. Далее следует раздел с базовыми понятиями: модули и сложность; движущие силы (forces), асинхронность и распределённость; четыре типа программных систем (управляющие, интерактивные, потоковые и вычислительные); организация взаимодействия, где сравниваются оркестрация, хореография и интеграция через общие данные.

Метапаттерны разбиты на четыре группы, всего на главной странице перечислено девятнадцать глав:

Group Metapatterns
Basic Monolith, Shards, Layers, Services, Pipeline
Extension Middleware, Shared Repository, Proxy, Orchestrator, Sandwich
Fragmented Layered Services, Polyglot Persistence, Backends for Frontends, Service-Oriented Architecture, Hierarchy
Implementation Plugins, Hexagonal Architecture, Microkernel, Mesh

В аналитическом разделе сравниваются паттерны, разбираются неоднозначные названия (на иллюстрации показано несколько разных систем, каждую из которых называют монолитом), архитектура сопоставляется с жизненным циклом продукта, рассматриваются примеры из реального мира, вдохновившие паттерны, а завершается он главой "The heart of software architecture", график в которой показывает сложность сопровождения в зависимости от масштаба проекта, при этом для каждого масштаба оптимальной оказывается своя архитектура. В приложения входят схемы эволюции архитектур, показывающие, как система может меняться под воздействием различных факторов, структура глав о метапаттернах, глоссарий, алфавитный указатель паттернов, список использованной литературы и история изменений.

Книга

В книге 440 страниц и сотни блочных схем со стрелками в авторском стиле NoUML; сайт описывает её как лаконичную и написанную без использования ИИ. Книгу можно скачать с GitHub и Leanpub, а страница заканчивается лозунгом "Knowledge must be free!". На сайте также даны ссылки на пять презентаций на Speaker Deck (паттерны паттернов, базовые архитектуры, расширения, фрагментированные архитектуры и паттерны реализации), помеченных как устаревшие.

Связи

  • what-even-are-microservices - утверждает, что разделение системы на сервисы решает организационную проблему; в этой книге такая архитектура отнесена к категориям Services и Layered Services
  • porto-sap - конкретный именованный слоистый паттерн для Laravel, заимствующий идеи гексагональной архитектуры; пример отдельного паттерна, который этот справочник относит к более общему классу