O objetivo do bom design de software, como já diria Robert C. Martin, em seu livro 'Clean Architecture: A Craftsman's Guide to Software Structure and Design', é minimizar os recursos humanos necessários para construir e manter um determinado sistema.
Esse projeto é inspirado em situações e dificuldades reais já vivenciadas que nos permitiu ter uma visão um pouco mais abrangente sobre como ter e construir uma arquitetura duradoura. "The only way to go fast, is to go well." - Robert C. Martin
A camada mais restrita de todas possui o mapeamento de regras e restrições do domínio do negócio.
Determina o comportamento da funcionalidade exigida, no caso, o use case será o orquestrador do domínio.
Camada de apresentação do sistema, nela, por exemplo, iremos fornecer nossos end points.
Todo acesso a dados seja banco e/ou api's expostos pelas interfaces do Use Case devem ser implementadas nessa camada.
Facilidade na execução dos testes com uma melhor granularidade.
Teste do ponto de vista de quem irá consumir, sempre buscando o mais perto de produção.
- Framework (Spring ou quarkus)
- Java 11+
- Maven 3+
- docker
- docker-compose
mvn clean install
docker build -t helpdev/app-quarkus-jvm .
O comando sobe toda infraestrutura necessária para a aplicação
docker-compose -f .docker-compose/stack.yml up
Agora podemos iniciar nossa aplicação
docker-compose -f .docker-compose/quarkus-app.yml up
Para ter uma interface de fácil com o OpenAPI consumido usamos o RapiDoc.
Basta acessar Endereço local e já pode testar as APIs
Para quem ainda não conhece o k6 é uma ferramenta para testes de carga, basta Instalar o K6 e executar o comando:
k6 run k6/script.js
O tempo de execução do K6 e quantidade de "Execuções" é configuravel, basta alterar o arquivo Script do K6
Saber como a aplicação está se comportando e métricas
A combinação poderosa entre o Grafana e o Prometheus permite gráficos e alertas configuraveis. Acesssando o Grafana Local já basta navegar até o dashboard précadastro e ter uma amostrado dos dados da apliação e das ferramentas.
- http://localhost:3000
- login: admin
- senha: admin
Já o Promehteus Local só acessar o link (sem login):
Ao acessar o Adminer é possivel executar scripts SQL além de adicionar e altarer dados dentro das tabelas.
- http://localhost:5000/adminer
- host:
- usuário:
- senha:
- base:
- Apresentação em slides - Jornada Colaborativa Summit 2021
- Artigo - Criando uma aplicação modular muito além do Clean Architecture (aguardando publicação)
Alisson Medeiros
- LinkedIn - https://www.linkedin.com/in/alisson-medeiros-8bb67830/
- GitHub - https://github.com/AlissonMedeiros
- Email - [email protected]
Guilherme Biff Zarelli
- Blog/Site - https://helpdev.com.br
- LinkedIn - https://linkedin.com/in/gbzarelli/
- GitHub - https://github.com/gbzarelli
- Medium - https://medium.com/@guilherme.zarelli
- Email - [email protected]