|
|
| [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [**Arquitetura**](arquitetura) | [Código](codigo) | [BD](banco_dados) | [Qualidade](qualidade) | [Utilização](utilizacao) | [Contratos](contratos)
|
|
|
| :----------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :----------------------------: | :--------------: | :---------------: | :--------------------: | :----------------------: | :----------------------: |
|
|
|
|
|
|
# Arquitetura |
|
|
\ No newline at end of file |
|
|
# Arquitetura
|
|
|
|
|
|
## Descrição
|
|
|
Esta seção aborda a arquitetura adotada e o esquema de deploy.
|
|
|
|
|
|
## Arquitetura Hexagonal: Ports and Adapters
|
|
|
A arquitetura hexagonal, também conhecida como "Ports and Adapters" ou "Clean Architecture", é um padrão de projeto arquitetônico que visa promover a modularidade, a separação de preocupações e a independência de frameworks externos em um sistema de software. Assim como o MVC, a arquitetura hexagonal oferece uma estrutura organizada para desenvolver aplicativos de forma eficiente e manutenível.
|
|
|
|
|
|
### Componentes da Arquitetura Hexagonal
|
|
|
###### Domínio
|
|
|
Na arquitetura hexagonal, o domínio é o cerne do sistema. Ele engloba as regras de negócios, entidades e objetos de valor que definem a lógica central do aplicativo. O domínio é independente de qualquer estrutura externa e não conhece detalhes de implementação fora de suas fronteiras.
|
|
|
|
|
|
###### Aplicação
|
|
|
A camada de aplicação é responsável por orquestrar os casos de uso do sistema. Ela atua como intermediária entre as portas de entrada/saída e o domínio. A camada de aplicação cuida da coordenação dos fluxos de trabalho, das transações e de outras operações que não fazem parte do núcleo da lógica de negócios.
|
|
|
|
|
|
###### Adaptadores (Adapters)
|
|
|
Os adaptadores são a ponte entre o domínio e as tecnologias externas. Eles permitem que o domínio interaja com o mundo exterior sem conhecer os detalhes técnicos específicos
|
|
|
|
|
|
### Benefícios da Arquitetura Hexagonal
|
|
|
###### Separação de Preocupações:
|
|
|
A arquitetura hexagonal promove a separação clara entre o núcleo da lógica de negócios e as partes externas, facilitando a manutenção e evolução do sistema.
|
|
|
###### Testabilidade:
|
|
|
A separação de camadas facilita a realização de testes unitários e de integração, tornando o sistema mais robusto e confiável.
|
|
|
###### Independência Tecnológica:
|
|
|
Mudanças em tecnologias externas têm menos impacto no núcleo do sistema, permitindo a adoção de novas ferramentas sem grandes reestruturações.
|
|
|
###### Flexibilidade:
|
|
|
A estrutura da arquitetura hexagonal permite que você adapte o sistema às mudanças de requisitos de forma mais ágil. |