раздел 16
Архитектура и решения
Архитектура живёт в решениях, документы фиксируют "почему".
Начать раздел
Хочу пройти
Не получилось изменить список. Попробуй ещё раз.
Без входа у каждого урока видно начало. Войди, чтобы читать целиком, отмечать пройденное и решать задачи. войти
Уроки раздела
- Архитектура: декомпозиция, именование, связывание
- Описание против интерпретации: одна идея от монад до event sourcing
- Один Decider, четыре рантайма: Gleam, Effect, Haskell и Rust бок о бок
- Вертикальные и горизонтальные срезы: как резать фичу на проверяемые куски
- Карта документов: от vision до критериев приёмки
- Design records и ADR: как записывать устройство и решения
- Документы исполнения: от бэклога до плана отката
- Качество, эксплуатация и governance: документы вокруг живой системы
- API contract governance: контракт как закон для двух команд
- Тактические решения: автомат, состояние, ошибки, границы
- Контракт модуля: скрытые типы и несколько взглядов на реализацию
- Выбор реализации: функторы и модули как значения
- Слои как морфизмы: категорная модель гексагональной архитектуры
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Базис
- Vocabulary: ADR/RFC/BCP/NFR/PRD/HLD/LLDЧто чем называют. Records: для AI и для людей.урок 5 · Карта документов: от vision до критериев приёмкиопираются: урок 6, урок 7, урок 8
- Архитектура: декомпозиция, именование, связываниеЧем режем систему, как называем части и какой топологией связываем. Контракты (типы, тесты, runtime-проверки), четыре способа связать модули, платформенный код.урок 1 · Архитектура: декомпозиция, именование, связываниеопираются: урок 5, урок 10, урок 11
- Модули: скрытое представление и явный контрактТип модуля объединяет операции и абстрактные типы. Подстановка реализации, законы стека сверх сигнатур и несколько публичных представлений одной реализации.урок 11 · Контракт модуля: скрытые типы и несколько взглядов на реализациюопираются: урок 12
- Тактические решения: автомат, состояние, ошибки, границыЧетыре повторяющихся решения на уровне кода, по три способа на каждое: конечный автомат, shared mutable state, обработка ошибок, связи модулей и видимость. Единый критерий выбора: восстановит ли читатель поведение через год.урок 10 · Тактические решения: автомат, состояние, ошибки, границы
- Модули: выбор реализации и связанные типыФункторы OCaml, явный выбор реализации и упаковка модуля со скрытым типом. Совместимость состояний, ограничения бинарных операций и отличие от классов типов.урок 12 · Выбор реализации: функторы и модули как значения
- Описание против интерпретацииОдин приём от монад до event sourcing: программа как данные, исполнение отдельным интерпретатором. Лестница абстракции и где приём оправдан.урок 2 · Описание против интерпретации: одна идея от монад до event sourcingопираются: урок 13
- Слои как морфизмы: категорная модельПорт как контейнер, слой один к одному как естественное преобразование, контравариантность ответа и версии API, категория слоёв над свободной монадой и бесплатная композиция.урок 13 · Слои как морфизмы: категорная модель гексагональной архитектуры
Strategy
- Strategy & scopeVision, Roadmap, Stakeholders, Risks, Assumptions.урок 5 · Карта документов: от vision до критериев приёмки
Requirements
- Requirements & analysisProblem, Scope, Functional & NFR, User story, Use case, Acceptance criteria (BDD), Domain glossary, Compliance.урок 5 · Карта документов: от vision до критериев приёмкиопираются: урок 6
Design
- ADR подробноКогда писать. Контекст, причины, ограничения, альтернативы, последствия, статус, связи, метрики, триггеры пересмотра.урок 6 · Design records и ADR: как записывать устройство и решения
- Architecture & design recordsC4, deployment, context map, domain model, API spec, schema, event/command catalog, threat model, RFC, ADR, PoC, migration plan, capacity/cost models.урок 6 · Design records и ADR: как записывать устройство и решенияопираются: урок 2, урок 9
Execution
- Planning & executionBacklog, Sprint plan, Release plan, Milestones, Retro, Lessons learned.урок 7 · Документы исполнения: от бэклога до плана откатаопираются: урок 4
- Source / Build / DeliveryREADME, contribution, coding standard, PR/review, release notes, CI/CD spec, IaC, deployment record, rollback, feature flag register, secrets inventory.урок 7 · Документы исполнения: от бэклога до плана откатаопираются: урок 4, урок 8
- Вертикальные и горизонтальные срезыКак резать фичу на проверяемые куски: сквозной скелет, тонкие вертикальные срезы, когда горизонталь оправдана, обозримость диффа в эпоху AI-агентов.урок 4 · Вертикальные и горизонтальные срезы: как резать фичу на проверяемые куски
Quality
- Testing & quality recordsTest plan, coverage, perf/security report, defect record, audit report.урок 8 · Качество, эксплуатация и governance: документы вокруг живой системы
- Operations & reliabilitySLI/SLA, incident record, postmortem, known issue, availability report, restore test, DR plan.урок 8 · Качество, эксплуатация и governance: документы вокруг живой системыопираются: урок 9
Governance
- Knowledge & onboardingArchitecture/engineering handbook, onboarding guide, FAQ.урок 8 · Качество, эксплуатация и governance: документы вокруг живой системы
- Security / Legal / GovernanceSecurity policy, PIA, retention, license record, vendor assessment.урок 8 · Качество, эксплуатация и governance: документы вокруг живой системы
Practice
- API Contract GovernanceКонтракты обязывают обе стороны. Schema-first. Контракт != реализация. Матрица владения. CI вместо доверия.урок 9 · API contract governance: контракт как закон для двух команд
Functional DDD
- Один Decider, два рантайма: Gleam и EffectОдин Reservation Decider бок о бок на Gleam и Effect. Что меняется со сменой языка (номинальный тип, эффекты, ошибки), а что остаётся (домен, тройка функций, закон replay).урок 3 · Один Decider, четыре рантайма: Gleam, Effect, Haskell и Rust бок о бок