Перейти к основному содержимому

О разделе

Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.

Здесь собрано проектирование и архитектура программных систем — структурные решения, которые потом дорого менять — границы модулей, масштабирование, легаси, объяснение выбора команде и бизнесу.

Материалы для разработчиков, архитекторов и аналитиков. Много статей с интерактивными схемами (C4, UML, эскизы монолита и микросервисов).

Уровень развёртывания (bare metal, ВМ, контейнеры, облако) — четыре модели; оркестрация — 8.06.

Как закодировать и собрать решения — в Конструирование ПО (связность/сцепление, модели ЖЦ, планирование).

PostgreSQL в архитектурных решениях

Архитектору и разработчику нужен живой опыт с PostgreSQL — транзакции, индексы, репликация, JSONB, миграции схем.

Установите сервер локально и пройдите практику по PostgreSQL; для production — практикум 8.11.

System Design с БД — карта тем.


Базовая теория (глава 2)

Проектные паттерны опираются на сети и протоколы — при пробелах идите в 2. Система и сеть:

Вопрос при проектированииТеория
REST, HTTP, контракты, идемпотентность2.09 · design/117
Очереди, Saga, согласованностьБрокеры
DNS, TLS, CDN, балансировка2.03 · 12 концепций
OAuth, mTLS, ИБ в NFR2.08
Диагностика API в консолиcurl

Базовая теория (глава 3)

Вопрос при проектированииТеория
Модель данных, нормализация, индексыОсновы БД · проектирование БД
Транзакции, MVCC, изоляцияКонкурентный доступ
Репликация, шардинг, кэш у БДОпорные темы · управление РСУБД
NoSQL, полиглот, event sourcingNoSQL · Event Sourcing в NoSQL
Batch, bulk, ETL, checkpointПакетная работа с данными
JSONB, пагинация в APIJSONB в PostgreSQL · пагинация в SQL

Базовая теория (глава 4)

Архитектурные решения должны стыковаться с тем, как код реально выполняется:

Вопрос при проектированииТеория
SOLID, слои, абстракцииSOLID · парадигмы — о разделе
ООП, агрегаты, наследование vs композицияООП — о разделе
Память, потоки, GC, производительностьАрхитектура выполнения — о разделе
Исключения в коде vs retry на сервисеОшибки и отказоустойчивость
DI, версии библиотек, модульностьЗависимости — о разделе
Слой доступа к данным, N+1ORM — о разделе
Асинхронные вызовы, event loopАсинхронность — о разделе
Как читать раздел

Не обязательно идти по алфавиту в меню. Ниже — три маршрута

в конце — связи с соседними разделами и подборка "Архитектура и проектирование ПО".


С чего начать (базовый маршрут)

  1. Основы проектирования и архитектуры — зачем проектировать, четыре уровня архитектуры, схемы, ADR. 1a. Ошибки, исключения и отказоустойчивость — термины (ошибка vs исключение), стек, логи; мост к retry/DLQ в главах ниже.
  2. System Design — карта тем и подготовка — порядок изучения (сети → БД → кэш → очереди), пять рычагов, типовой контур, классические задачи, postmortem. Синтез по асинхронной обработке — асинхронная обработка в высоконагруженных системах; для "ложного CRUD" — email-рассылка как распределённая система; для ручной диагностики API-контуров — утилита curl, curl / fetch — примеры. 2a. Основы развития информационных систем — мост между архитектурой и эксплуатацией: как системы эволюционируют от MVP к кэшу, балансировке, репликации, шардингу, централизованному логированию и поэтапным миграциям.
  3. 12 концепций распределённой архитектуры — балансировка, кэш, CDN, очереди, gateway, шардирование и autoscaling в одной шпаргалке. Экосистема технологий MSA (БД, брокеры, K8s, CI/CD) — таблица; сборка в продакшн-контур — девять компонентов.
  4. Системный подход и системное мышление — границы системы, обратные связи.
  5. Архитектурные стили и их применение — монолит, SOA, микросервисы.
  6. Доменная модель · Типы классов в DDD — сущности, агрегаты, роли классов.
  7. Проектирование под NFR — измеримые нефункциональные требования.
  8. Итоги · чек-лист.

Маршрут для архитектора

Массовый ИИ-код без архитектурных инвариантов даёт нейрослоп в репозитории — см. вайб-кодинг.

  1. Роль и практика архитектора ПО — артефакты, навыки, отличие от техлида.
  2. Практика архитектурного проектирования — монолит, границы, Conway, эволюция.
  3. Event Storming · Оценка альтернатив · Threat modeling.
  4. Проектирование — о разделе — API, БД, распределённые системы, надёжность; массовые загрузки и ETL — Пакетная работа с данными.
  5. Чистая архитектура — теорияпрактика на ASP.NET Core.
  6. Документация как инструмент · API и интеграции · микросервисы · декомпозиция монолита · паттерны перехода.
  7. Семь слоёв LLM-стека — если в ландшафт входят RAG, copilot или вызов внешней модели: от источников данных до прикладного UI (сопоставимо с gateway, очередями и NFR из 12 концепций).
Разбор

"Срочно нужны микросервисы" — сначала NFR и границы команд

сравните с модульным монолитом и таблицей trade-off.


Термины на одной странице

ТерминСмысл
NFRНефункциональные требования в цифрах: latency, RPS, RTO/RPO
ADRПочему выбрали вариант A, а не B
Bounded contextГраница однозначных терминов и правил
Saga / OutboxСогласованность между сервисами без одной БД — Saga, теория очередей
Circuit BreakerПредохранитель на вызов зависимости

CAP/PACELC — распределённые системы, выбор лидера (Raft, Paxos, ZAB) — Алгоритмы выбора лидера в распределённых системах, карта system design — System Design — карта тем и подготовка, итоги — Проектирование и архитектура — итоги.


Углубление — паттерны


Практика в лаборатории

Закрепление тем раздела — в кейсах лаборатории "Кейсы":

ТемаКейс
Анализ ситуации, гипотезы, критерии решения"Ситуации в IT"
Разбор инцидента и профилактика"Разборы"
Слоистый backend (REST, DI, репозиторий)"Spring Boot приложение" (данные — PostgreSQL, MySQL, SQL Server)
Порождающий паттерн Singleton"Singleton на C#"
Клиент внешнего API, обработчики событий"Telegram Bot на Python"
TDD и качество модулей"Тренируем TDD" (теория — тестирование)

Полный список ссылок на кейсы по паттернам — в обзоре подраздела "Паттерны".


Все материалы раздела


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

ТехлидСпециализации, Роль и практика архитектора программного обеспечения, Паттерны проектирования — о разделе, Проектирование — о разделе, Архитектура выполнения — о разделе, Микросервисы и интеграция — о разделе.

Архитектура и проектирование ПОАрхитектура десктопных приложений, Паттерны проектирования — о разделе, Архитектура выполнения — о разделе, Проектирование — о разделе, Основы интеграционного взаимодействия — о разделе, Методы защиты пользовательских и корпоративных данных.