Roadmap — Padrões de Projeto (galho-pai)
Roadmap do galho 03-Dominios/Engenharia/Design de Software/Padrões de Projeto. Galho-pai: mapeia o estado dos sub-galhos (famílias de padrões). Cada família tem (terá) seu próprio roadmap.md folha. Origem: sessão de brainstorming de 2026-07-28 (Tier 2 do Roadmap, consolidação de Design de Software).
O que é este galho
Um catálogo de consulta de padrões de projeto e de arquitetura de aplicação, para um sênior de plantão — inclusive (e especialmente) em sistemas legados. Não é uma trilha linear de aprendizado: é um repertório onde se procura um padrão. Por isso, cada entrada é autocontida (dá pra entender sem sair do galho) e alguma redundância com outros galhos do vault é aceitável e desejada — o catálogo não pode depender de galhos que evoluem em ritmo próprio.
Princípios de design do galho
- Catálogo independente. Cada nota de padrão se sustenta sozinha: cenário → ideia → implementação → quando não usar. Cross-links são “aprofunde aqui”, nunca dependência.
- Lente cross-linguagem. Todo padrão é mostrado em Java, TypeScript, Python e Go, comentando como os recursos da linguagem mudam a implementação — e quando a linguagem torna o padrão desnecessário (ex.: Strategy vira função; Go sem herança dissolve Template Method; pattern matching mata Visitor).
- Peso no “quando NÃO usar”. Todo mundo ensina quando usar. Aqui a seção Armadilhas é recheada: usos equivocados, o custo de aplicar cedo demais, o sinal de abstração prematura. É o diferencial do galho.
- Redundância = reforço (convenção do vault: nunca deduplicar assunto repetido entre notas; linkar). Onde uma família encosta em galho já pronto (Comunicação, Cloud, Operação), a entrada é autocontida e reconhece a casa profunda.
Estado dos sub-galhos (famílias)
Legenda: ✅ completo · 📋 roadmap pronto, escrita pendente · 🔶 parcial · ⬜ não planejado em detalhe · % = (✅+➖)/total.
| # | Família | Fonte canônica | Notas (est.) | Sobreposição | Estado | roadmap |
|---|---|---|---|---|---|---|
| 1 | Clássicos (GoF) | Gang of Four (1994) | 23 | baixa | ✅ COMPLETA 23/23 (2026-07-28) | folha |
| 2 | Acesso a Dados | Fowler PoEAA + J2EE + NoSQL | 15 | média (Java/Dados) | ✅ COMPLETA 15/15 (2026-07-28) | folha |
| 3 | Integração Empresarial (EIP) | Hohpe & Woolf | 14 | baixa | ✅ COMPLETA 14/14 (2026-07-29) | folha |
| 4 | Aplicação Corporativa | Fowler PoEAA (não-dados) | 14 | baixa | ✅ COMPLETA 14/14 (2026-07-30) | folha |
| 5 | Arquitetura de Eventos | Fowler (4 estilos) + Richardson | 10 | alta (Comunicação/System Design) | ✅ COMPLETA 10/10 (2026-07-31) | folha |
| 6 | Nuvem e Resiliência | Azure Cloud Design Patterns + Nygard | 14 | muito alta (System Design/Operação/Cloud/Arqueologia) | ✅ COMPLETA 14/14 (2026-07-31) | folha |
Total realizado: 90 notas de conteúdo + scaffolding (index/roadmap por família). GALHO COMPLETO — 6/6 famílias (2026-07-28 a 31). Construção sequencial, família a família, uma lente por família.
Ordem de execução
Sequência escolhida (valor pro ofício de legado primeiro, maior sobreposição por último):
✅ TODAS AS SEIS EXECUTADAS, na ordem planejada: GoF · Acesso a Dados · EIP · Aplicação Corporativa · Arquitetura de Eventos · Nuvem e Resiliência.
A lição do método: cada família recebeu uma lente própria, decidida em brainstorm, e nas duas últimas o passo decisivo foi o levantamento de fronteira antes do roster — na 5 ele evitou 5 notas redundantes e produziu a lente do acoplamento; na 6 revelou cobertura tripla e levou à lente do sacrifício. Repetir esse levantamento é a recomendação para qualquer galho novo de catálogo.
Disciplina de custo: escrita sequencial, uma nota por vez via /escrever-nota; /checkpoint entre blocos; sem fan-out massivo (regra pessoal do usuário). Cada família = seu próprio ciclo brainstorm→roadmap-folha→escrita quando chegar a vez dela.
Rosters provisórios das famílias 2-6
Capturados agora para evitar drift na tarefa longa. São provisórios — cada família ganha roadmap-folha detalhado (fases, escopo por nota, custo) quando for a vez dela.
Família 2 — Acesso a Dados (15) — CORTE FECHADO 2026-07-28, ver roadmap-folha
Iniciado: 01 Panorama · 02 Transaction Script · 03 Domain Model · 04 Table Module (Service Layer como seção) · 05 DAO · 06 Active Record. Adepto: 07 Gateways (Row/Table Data Gateway + Record Set) · 08 Data Mapper · 09 Repository · 10 Unit of Work · 11 Identity Map · 12 Lazy Load · 13 Query Object. Magus: 14 agregado + single-table (DynamoDB) · 15 polyglot persistence + materialized views. Lente adaptada: cross-ORM (AR=Rails/Django/Eloquent; Data Mapper=Hibernate/SQLAlchemy/Doctrine; Repository=Spring Data), não cross-linguagem pura. Eixo dorsal: Active Record × Data Mapper. Movidos p/ fora: Cache-Aside · sharding · read-replicas → família 6 (Nuvem e Resiliência) / Cloud (não são acesso a dados).
Família 3 — Integração Empresarial / EIP (~14)
Subset curado dos 65 de Hohpe & Woolf: Message Channel · Message · Pipes and Filters · roteamento (Content-Based Router, Message Filter, Recipient List, Splitter, Aggregator, Resequencer) · Message Translator/Normalizer · Canonical Data Model · endpoints (Polling vs Event-Driven Consumer, Competing Consumers, Idempotent Receiver) · Guaranteed Delivery · Dead Letter Channel · Message Bus vs Broker. Alto valor legado (ESBs, MOM, Camel/MuleSoft).
Família 4 — Aplicação Corporativa / PoEAA não-dados (~14)
Apresentação web: MVC · Page Controller · Front Controller · Application Controller · Template View · Transform View · Two-Step View. Distribuição: Remote Facade · DTO · Service Layer. Concorrência offline: Optimistic Offline Lock · Pessimistic Offline Lock · Coarse-Grained Lock. Session state: Client/Server/Database Session State. Base: Gateway · Mapper · Layer Supertype · Separated Interface · Registry · Value Object · Money · Special Case · Plugin · Service Stub.
Família 5 — Arquitetura de Eventos (~10)
Event Notification · Event-Carried State Transfer · Event Sourcing · CQRS · Saga (choreography vs orchestration) · Process Manager · Outbox · Idempotent Consumer / Inbox · Domain Events · Event Collaboration.
Sobreposição alta com Comunicação entre Sistemas (assíncrona). Entrada de catálogo autocontida + link “aprofunde”.
Família 6 — Nuvem e Resiliência (~14)
Circuit Breaker · Retry · Timeout · Bulkhead · Rate Limiting / Throttling · Cache-Aside · Ambassador · Sidecar · Anti-Corruption Layer · Strangler Fig · Gatekeeper · Valet Key · Leader Election · Health Endpoint Monitoring.
Sobreposição alta com Cloud e Operação. Strangler Fig / ACL também vivem na Arqueologia. Entrada autocontida + link.
Pendências transversais / decisões em aberto
- ✅ RESOLVIDO (2026-07-31) — Notas meta-catálogo do galho-pai (capstone): “Reconhecer patterns nos frameworks” e “Quando NÃO usar: discernimento sênior” começam escopadas em GoF (família 1, notas 22-23). Quando ≥2 famílias existirem, avaliar graduá-las a capstone do galho-pai que generaliza pra todas as famílias, em vez de repetir por família.
fase:vs sequência: GoF adota fases (Iniciado/Adepto/Magus) por centralidade/frequência do padrão, não como gate de aprendizado — é catálogo. Famílias-referência (2-6) podem ser SEM fase (sequência). Decidir por família no roadmap-folha.- Poda do monólito (no fim da família 1):
Design Patterns.md(631 ln,publish:false) é a matéria-prima da família GoF. Ao fechar GoF, podar em stub/redirect. 8 notas linkam[[Design Patterns]](SOLID 01/03/index, OO 06/07/12/13/index) — preservar a resolução: ou manter stubDesign Patterns.mdcom callout → índice do galho-pai, ou dar alias “Design Patterns” aoindex.mdda família GoF (atenção à regra do Quartz: folder-link exige index.md; padrão tronco→galhos do vault). index.mddo galho-pai + das famílias: criar quando houver conteúdo (evitar links pendentes / quebra Quartz). Rastreado como passo.
Próximos passos
- ✅ Roadmap do galho-pai (este arquivo) + roadmap-folha da família GoF criados (2026-07-28).
- ✅ Roadmap central atualizado com a decisão das 6 famílias (2026-07-28).
- ✅ Escrever a família Clássicos (GoF) — COMPLETA 23/23 (2026-07-28);
index.mdda família criado, todas as fases linkadas. - ✅ Monólito
Design Patterns.mdpodado (2026-07-28, opção a): virou esteindex.mddo galho-pai, com aliasDesign Patterns; 8 inbound links resolvem via alias; refs full-path do galho Python reapontadas p/ o index da GoF; índice do domínio atualizado. - ✅
index.mddeste galho-pai criado (MOC das 6 famílias). - ✅ Família Acesso a Dados — COMPLETA 15/15 (2026-07-28); Iniciado 01-06, Adepto 07-13, Magus 14-15;
index.mdda família com todas as fases linkadas; roadmap-folha 100%. - ✅ Família Integração Empresarial (EIP) — COMPLETA 14/14 (2026-07-29); Iniciado 01-04 (Message/Channel/Pipes-and-Filters), Adepto 05-09 (roteamento+transformação), Magus 10-14 (endpoints/confiabilidade/topologia); lente Camel/Spring Integration; fio condutor “smart endpoints, dumb pipes”; fronteira com Comunicação entre Sistemas cravada;
index.md+ roadmap-folha 100%. - ✅ Família Aplicação Corporativa (PoEAA não-dados) — COMPLETA 14/14 (2026-07-30); Iniciado 01-05 (apresentação), Adepto 06-10 (distribuição, sessão, concorrência offline), Magus 11-14 (padrões-base). Lente arqueológica (era × hoje) em vez de cross-framework, com seção obrigatória “A ressurreição” marcando correspondência reconhecida × leitura do catálogo. Corte de 26 candidatos → 14 notas; fronteira com a família 2 cravada (Service Layer/Gateway/Mapper ficam lá). Nota 14 fecha com mapa de reconhecimento (código encontrado → padrão) e a síntese das 3 premissas que a nuvem inverteu.
index.md+ roadmap-folha 100%. - ✅ Família Arquitetura de Eventos — COMPLETA 10/10 (2026-07-31); Iniciado 01-03 · Adepto 04-07 · Magus 08-10. Família com maior sobreposição do galho: levantamento mostrou que ES/CQRS/Saga/Outbox/pub-sub já tinham casa profunda em System Design e Comunicação, então a lente virou o evento como decisão de acoplamento (“o que carrega, a quem amarra”), com 8 fronteiras cravadas em tabela. Eixo dorsal Notification × ECST. Nota 10 fecha com mapa de escolha por sintoma + síntese do espectro. Correção de fonte: os 4 estilos de Fowler são Notification/ECST/Event Sourcing/CQRS — Event Collaboration é termo do eaaDev e não integra a taxonomia.
- ✅ Família Nuvem e Resiliência — COMPLETA 14/14 (2026-07-31); Iniciado 01-05 (timeout/retry/breaker/bulkhead) · Adepto 06-10 (fallback/rate-limit/cache/health/leader) · Magus 11-14 (sidecar/gatekeeper/ACL+strangler/capstone). Família mais coberta do vault (cobertura tripla: System Design + Operação + Cloud, mais Arqueologia para Strangler/ACL); construída assim mesmo por decisão do usuário, pelo princípio de autocontenção do catálogo, com lente do sacrifício e callout de recorte obrigatório em toda nota.
- ✅ Capstone do galho-pai RESOLVIDO — a nota 14 da família 6 assume o papel (Parte I: mapa de resiliência; Parte II: as 6 famílias, as 6 lentes, as 5 lições transversais). As notas 22-23 da GoF permanecem escopadas em GoF, sem graduação.
🎉 GALHO-PAI COMPLETO: 6/6 famílias, 90 notas de conteúdo (2026-07-28 a 2026-07-31). Daqui em diante o galho é material de consulta e manutenção — revisitar quando um padrão aparecer no trabalho, atualizar quando o contexto mudar um trade-off.