Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização | Contratos |
---|
Descrição
Esta seção aborda a arquitetura adotada e o esquema de deploy.
Diagrama de Deploy
Backend
Framework
Linguagem
Gerenciador de Dependências
Testes
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.
Frontend
Framework
Linguagem
Gerenciador de Dependências
Arquitetura
(Estrutura de Pastas)
├── App.tsx
├── assets
├── src
│ ├── api
│ │ └── hooks
│ ├── components
│ ├── constants
│ │ └── apiURL.ts
│ ├── redux
│ ├── routes
│ ├── screens
│ └── utils
├── babel.config.js
├── package.json
└── README.md
Componentes da Estrutura
api
Contém módulos relacionados à comunicação com APIs externas. Dentro dela, há uma subpasta chamada hooks, que pode conter React Hooks personalizados relacionados a chamadas de API.
components
Aqui você coloca os componentes React reutilizáveis que podem ser usados em várias partes do seu aplicativo.
- Exemplo: Pode incluir botões, barras de navegação, modais e outros componentes que podem ser utilizados em diferentes partes do aplicativo.
constants
Contém constantes usadas em várias partes do aplicativo. No caso específico, há um arquivo chamado apiURL.ts, que este é o local onde a URL da API é definida como uma constante.
redux
Usado para gerenciar o estado global do aplicativo, é aqui onde é organizada os reducers, actions, etc.
routes
Contém configurações e lógica relacionada a navegação no aplicativo, usando a biblioteca de navegação do React Navigation (@react-navigation/native).
screens
Armazena componentes React que representam diferentes telas do aplicativo. Cada tela tem sua própria pasta dentro de screens, contendo o componente principal da tela, bem como quaisquer componentes relacionados a essa tela.