Olá pessoal,
Comprei o livro Padrões de Arquitetura de Aplicações Corporativas do Martin Fowler e estou iniciando a leitura. O livro é em Portugues, e me pareceu exelente numa primeira folheada.
O livro peca entretanto na tradução dos padrões, tornando difícil em alguns casos a identificação e correspondência ao termo em inglês.
É essa a intensão desse post, aproveitar a maior experiência dos amigos para “destraduzir” os nomes dos padrões, alguns são óbvios, mais outros são bem difíceis de identificar. Isso me ajudaria muito a compreender melhor as coisas, dando nomes aos bois. Acho que todos que compraram este livro se beneficiariam com essas informações.
Caso alguns nomes de padrões fiquem difíceis de indentificar, eu busco depois mais detalhes e exemplos.
Segue abaixo a lista dos padrões abordados no livro e sua definição. Esta lista foi copiada da contra capa do livro. Basta apenas que o nome do padrão, em negrito, seja identificado ao seu correspondente em inglês. Obrigado a todos que puderem colaborar.
1- Bloqueio de Granularidade Alta - Bloqueia um conjunto de objetos relacionados utilizando para isso um único bloqueio.
2- Bloqueio Implícito - Permite ao código de uma camada supertipo ou de um framework obter bloqueios offline.
3- Bloqueio Offline Otimista - Previne conflitos entre transações de negócios concorrentes detectando um conflito e desfazendo a transação.
4- Bloqueio Offline Pessimista - Previne conflitos entre transações de negócios concorrentes permitindo que apendas uma transação de negócio acesse os dados de cada vez.
5- Camada de Serviço - Define a fronteira de uma aplicação com uma camada de serviços que estabelece um conjunto de operações disponíveis e coordena a resposta da aplicação em cada operação.
6- Camada Supertipo - Um tipo que atua como o supertipo para todos os tipos nesta camada.
7- Campo Identidade - Guarda o campo ID de um banco de dados em um objeto para manter a identidade entre um objeto na memória e uma linha do banco de dados.
8- Carga Tardia - Um objeto que não contém todos os dados de que você precisa, mas sabe como obtê-los.
9- Caso Especial - Uma subclasse que fornece comportamento especial para casos particulares.
10- Conjunto de Registros - Uma representação em memória de dados tabulares.
11- Controlador de Aplicação - Um ponto centralizado para manipular a navegação de tela e fluxo de uma aplicação.
12- Controlador de Página - Um objeto que trata uma requisição para uma página ou ação específica em um site web.
13- Controlador Frontal - Um controlador que trata todas as requisições para um site web.
14- Dinheiro - Representa um valor monetário.
15- Estado de Sessão no Banco de Dados - Armazena dados de sessão no banco de dados.
16- Estado de Sessão no Cliente - Armazena o estado de sessão no cliente.
17- Estado de Sessão no Servidor - Mantém o estado de sessão no servidor.
18- Fachada Remota - Fornece uma fachada de granularidade alta sobre objetos de granularidade baixa para melhorar a eficiência em uma rede.
19- Gateway - Um objeto que encapsula o acesso a um sistema ou recurso externo.
20- Gateway de Linha de Dados - Um objeto que atua como um Gateway para um único registro em uma fonte de dados. Existe uma instância por linha.
20- Gateway de Tabela de Dados - Um objeto que atua como um Gateway para uma tabela de um banco de dados. Uma instância lida com todas as linhas na Tabela.
21- Herança de Tabela Concreta - Representa uma hierarquia de herança de classes com uma tabela por classe concreta na hierarquia.
22- Herança de Tabela de Classes - Representa uma hierarquia de herança de classes com uma tabela por classe.
23- Herança de Tabela Única - Representa uma hierarquia de herança de classes com uma única tabela que tem colunas para todos os campos das diversas classes.
24- Interface Separada - Define uma interface em um pacote separado de sua implemetação.
25- LOB Serializado - Grava um grafo de objetos serializando-os em um único objeto grande (LOB - Large Objetct), o qual é armazenado em um campo do banco de dados.
26- Mapa de Identidade - Garante que cada objeto seja carregado apendas uma vez mantendo cada objeto carregado em um mapa. Procura pelos objetos usando o mapa, quando há uma referência para eles.
27- Mapeador - Um objeto que estabelece uma comunicação entre dois objetos independentes.
28- Mapeador de Dados - Uma camada de Mapeadores que move dados entre objetos e um banco de dados enquanto os mantém independentes uns dos outros e do próprio mapeador.
29- Mapeadores de Herança - Uma estrutura para organizar mapeadores de banco de dados que tratam hierarquias de herança.
30- Mapeamento de Chave Estrangeira - Mapeia uma associação entre objetos para uma referência de chave estrangeira entre tabelas.
31- Mapeamento Dependente - Faz uma classe executar o mapeamento no banco de dados de uma classe filha.
32- Mapeamento em Metadados - Armazena os detalhes do mapeamento objeto-relacional em metadados.
33- Mapeamento de Tabela Associativa - Grava uma associação com uma tabela com chaves estrangeiras para as tabelas que estejam vinculadas pela associação.
34- Modelo de Domínio - Um modelo de objetos do domínio que incorpora tanto o comportamento quanto os dados.
35- Modelo Vista Controlador - Divide a interação da interface com o usuários em três papéis distintos.
36- Módulo Tabela - Uma instância única que trata a lógica de negócio para todas as linhas de uma tabela ou visão em um banco de dados.
37- Objeto de Pesquisa - Um objeto que representa uma consulta ao banco de dados.
38- Objeto de Transferência de Dados - Um objeto que transporta dados entre processos de modo a reduzir o número de chamadas de métodos.
39- Objeto Valor - Um objeto pequeno e simples, como dinheiro ou um intervalo de datas, cuja igualdade não é baseada em identidade.
40- Plugin - Conecta classes durante a configuração, em ves de na compilação.
41- Registro - Um objeto conhecido que outros objetos podem usar para encontrar objetos e serviços comuns.
42- Registro Ativo - Um objeto que encapsula uma linha, em uma tabela ou visão de um banco de dados e o acesso ao banco de dados e adiciona lógica de domínio a esses dados. (meio estranho, mais é a copia fiel).
43- Repositorio - Faz a medição entre as camadas de domínio e de mapeamento de dados usando uma interface do tipo coleção para acessar os objetos do domínio.
44- Roteiro de Transação - Organiza a lógica de negócio em procedientos em que cada procedimento trata uma única solicitação da apresentação.
45- Strub de Serviço - Remove a dependência de serviços problemáticos drante os testes.
46- Unidade de Trabalho - Mantém uma lista de objetos afetados por um transação de negócio e coordena a gravação das alterações e a resolução de problemas de concorrência.
47- Valor Embutido - Mapeia um objeto em diversos campos da tabela de outro objeto.
48- Vista de Transformação - Uma visão que processa dados do domínio elemento por elemento e os transforma em HTML.
49- Vista em Duas Etapas - Transforma dados do domínio em HTML, em duas etapas: primeiro, formando algum tipo de página lógica e, depois, representando essa página lógica em HTML.
50- Vista Padrão - Representa informações em HTML, inserindo marcadores em uma página HTML.