Aplicação Corporativa
TL;DR
A metade não-dados do catálogo de Martin Fowler (Patterns of Enterprise Application Architecture, 2002): apresentação web, distribuição, concorrência offline, estado de sessão e os padrões-base. Quarta família do galho-pai Padrões de Projeto. É a família mais datada das seis — e é justamente por isso que ela serve ao ofício de legado: estes são os padrões que você encontra ao abrir um sistema de 2006. A lente é arqueológica (era × hoje), e cada nota tem uma seção A ressurreição, porque a maioria destes padrões voltou — quase sempre por causa da nuvem.
Sobre esta família
Catálogo de consulta para o sênior de plantão. Cada nota é autocontida, a seção Armadilhas pesa no quando não usar, e a seção A ressurreição marca explicitamente o que é correspondência reconhecida (BFF é Remote Facade) e o que é leitura deste catálogo (React como Transform View) — nunca apresentando interpretação como consenso.
Fronteira com Acesso a Dados: aquela é a outra metade do mesmo livro. Service Layer, Gateway e Mapper têm casa canônica lá e aqui aparecem só em prosa + cross-link — a única redundância que o galho não aceita é duas notas disputando o mesmo padrão.
Fronteira com Auth e Identidade: a nota 08 trata de onde o estado da conversa mora (decisão de arquitetura); as consequências de segurança de token e cookie têm casa profunda naquele galho.
Iniciado — Apresentação: como a requisição vira tela
- 01 - Panorama da aplicação corporativa — as três camadas, o contexto de 2002 e o método de ler um legado por elas.
- 02 - MVC — o padrão mais mal-entendido — o original (Reenskaug, 1979) × o web × a diáspora MV*; o observer como coração perdido.
- 03 - Page Controller × Front Controller — quem recebe a requisição; o file-based routing ressuscitou o primeiro, o segundo virou infraestrutura.
- 04 - Application Controller — quem decide o próximo passo; a máquina de estados que virou Step Functions e XState.
- 05 - Template View × Transform View × Two-Step View — as três formas de produzir a saída; a migração silenciosa para Transform View.
Adepto — Distribuição, estado e concorrência offline
- 06 - Remote Facade — interface grossa na fronteira remota; hoje se chama BFF.
- 07 - DTO — e por que virou pejorativo — as quatro situações em que ele se justifica, e todas as outras.
- 08 - Session State — Client × Server × Database — a nuvem inverteu a recomendação de 2002.
- 09 - Optimistic × Pessimistic Offline Lock — o lost update e a transação de negócio que o banco não enxerga.
- 10 - Coarse-Grained Lock — travar o conjunto; o único padrão sem ressurreição, absorvido pelo agregado do DDD.
Magus — os padrões-base que você usa sem nomear
- 11 - Layer Supertype + Separated Interface — destinos opostos: um caiu com a composição, o outro virou o Hexagonal.
- 12 - Registry + Plugin + Service Stub — quem decide qual implementação: execução, configuração, teste.
- 13 - Value Object + Money — identidade por valor; por que dinheiro em ponto flutuante é bug garantido.
- 14 - Special Case + Null Object — a ausência como objeto; fecha a família com o mapa de reconhecimento dos 14 padrões e a síntese da lente arqueológica.
Atalho para quem está com um legado na mesa
A nota 14 - Special Case + Null Object termina com um mapa de reconhecimento: uma tabela que vai do que você encontra no código (
web.xmlcom servlet único, classesXxxVO, colunaVERSION,AbstractEntity) direto para o padrão e a nota. É o índice mais útil da família em campo.
Todas as notas
TABLE fase, status, updated
FROM "03-Dominios/Engenharia/Design de Software/Padrões de Projeto/Aplicação Corporativa"
WHERE type = "concept"
SORT file.name ASCVeja também
- Padrões de Projeto — o galho-pai e as seis famílias.
- Acesso a Dados — a outra metade do PoEAA.
- Integração Empresarial (EIP) — a família anterior.
- Arqueologia e Restauração de Software — o método de assumir um sistema herdado, de que esta família é o vocabulário.