Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introdução, Arquitetura Hexagonal Ports and Adapters, Alistair Cockburn…
Introdução
Objetivo
Isolar de dispositivos externos de execução
Ignorar Dependencias Externas
Focar no desenv do requisito de negócio
Deixando as questões de interface e infraestrutura de lado, para focar no que o software realmente tem que fazer
Guideline
Valores
Resultados
Serve para
Projetar e construir aplicativos de Software
Filosofia de Desenvolvimento Ágil
Orientado a TDD
Foco nos requisitos de negócio
Adiar decisões técnicas o máximo possível
O que é?
É um padrão de projeto
Solução geral reutilizável
Arquitetura Hexagonal
Ports and Adapters
Princípios e Metáforas
Isolamento
Separation of Concern - SoC
Áreas de isolamento
Centro como Hexágono
Código com a lógica de negócio
OOP
OAP
FP
Deve ser totalmente agnóstico
Qualquer tecnologia
Framework
Infraeestrutura
Interface Gárfica
Inteface de Comunicação
Dispositivos Externos
Pode ter dependências de frameworks de serviços gerais
Superior Esquerdo
Intercabiável
Flexível
Dispara algum evento
WebServices
EndPoints
Interface web
Interface Desktop
Direito infeiror
Conexão com banco de dados
Integração com outras plataformas
Integração com outras tecnologias
Modularização em blocos menores
Focados em resolver
um único problema
Elaborar uma arquitetura
Manutenível
Sustentável
Flexível
Atores
Primário - Driver
Condutor
Suíte de Testes
Aplicação Remota
Single Page Application
Message Queue
Mobile App
Secundário - Driven
Conduzido
Banco de Dados
NoSql
Sistema de Arquivos
SMTP
Serviços Http
Tipos de Atores Conduzido
Repository
Enviar ou Receber informações
Banco de Dados
Outro dispositivo de armazenamento
Recipient
Enviar informações e esquecer
Email SMTP
Post Http
Ports
O que são?
São interfaces de Orientação a Objeto
Polimorficamente definem um contrato de uso
Isolam e Encapsulam determinado serviço sendo executado
Tipos
Primárias - Driver
Condutor
Formam a API da solução para entrada do Hexágono
Funções e Eventos
Que permite alterar objetos e atributos
Executar processo da lógica de negócio
User Case
Interfaces devem estar dentro do Hexágono
Secundárias - Driven
Conduzido
Formam a SPI Service Provider Interface
Acessar banco de dados
Acessar NoSql
Serviços Http
Sistema de arquivos
Ações
Inserir Cliente
Pesquisar Fatura
ProcurarCliente Inativo
Interfaces fora
do Hexágono
Atuam como isoladores entre interior e exterior da aplicação
Adapeters
Tipos
Condutor - Driver
Objetivo de fazer integração de fora para dentro do Hexágono
Converter uma solicitação de tecnologia específica em uma agnóstica e pura de sistema
Para cada porta condutora, deve haver pelo menos 02 adaptadores
Uma para testar o comportamento via TDD
Uma usando a tecnologia real requerida pela solução
Condutor - Driven
Exemplos:
Mensageria
GUI de um aplicativo Web MVC
GUI de um aplicativo Desktop
Suíte de testes
Um adaptador de SQL
Um adaptador de EMAIL
Um adaptador de Filas
Objetivo de fazer integração de dentro para fora do Hexágono
Converter chamadas de dentro da solução para fora, usando serviços de infraestrutura tecnológicos externos a solução
Conceito
O que é?
Um componente de Software
Para que serve?
Permite que uma tecnologia externa interaja com o uma Porta do Hexágono
Alistair Cockburn em 2005