Próximas Turmas

  • Frequência: Terça e Quinta
  • Horário: 09:00/13:00h
  • Término Previsto: 08/05/2025
  • Modalidade: Presencial/online
  • Professor: Sergio Mendes
Investimento:

Entrada: R$ 739,20 + 36x de R$ 290,35
ou
12*560,00 no cartão

Realizar matrícula

O que você vai aprender nesse curso

O objetivo do curso é capacitar o aluno para atuar como Arquiteto de Sistemas Java.
O curso aborda as melhores práticas arquiteturais, são elas: DDD (Domain Driven Design), TDD (Test Driven Development), além do SOLID e boas práticas de Clean Code em Java.

Durante o treinamento o aluno irá desenvolver uma aplicação completa baseada em Microserviços (API) utilizando Spring Boot e RabbitMQ para serviços de mensageria. O aluno fará o desenvolvimento completo do projeto e sua implantação no AWS e AZURE.

IDE: Eclipse

Práticas arquiteturais:

  • DDD - Domain Driven Design
  • TDD - Test Driven Development
  • SOLID - SRP, OCP, LSP, ISP, DIP
  • Clean Code
  • Clean Architecture
  • Arquitetura de Microserviços REST
  • CQRS - Command Query Responsibility Segregation
  • Arquitetura Hexagonal (Ports and adapters)

AWS - Amazon Web Services / Microsoft AZURE:

  • Deploy de aplicações no AZURE usando GITHUB Actions (Deplpy contínuo)
  • Hospedando aplicações com AWS Elastic Beanstalk
  • Hospedando bancos de dados com AWS RDS
  • Gerenciando sistemas de arquivos com AWS S3
  • Implantando conteineres com EKS - Elastic Kubernetes Services
  • Gerenciando permissões com IAM
  • AMQP (Mensageria RabbitMQ)
  • MongoDB Atlas (Banco de dados NoSQL)
  • Docker e virtualização

Pré-requisito: Java Developer - Formação Full Stack ou experiência como desenvolvedor Java

Conteúdo do curso

Ementa:

  • Arquitetura de Microserviços REST
  • Configurando o Spring Boot
  • Criando um projeto Spring Boot
  • Padrão REST
  • Arquitetura de microserviços
  • Requests
  • Responses
  • Configurando Swagger
  • Mapeamento de JavaBeans com LOMBOK
  • JPA e mapeamento objeto relacional (ORM)
  • Repositório genérico com Hibernate
  • Service Layer
  • Validação de dados da API
  • Construindo Repositórios
  • JPQL - Java Persistence Query Language
  • Injeção de dependência
  • Autenticação com JWT - JSON Web Tokens
  • Executando testes de integração com Junit

DDD - Domain Driven Design, CQRS e Arquitetura hexagonal

  • Definindo o domínio da aplicação
  • Domain Entities
  • Domain Services
  • Repositories
  • InfraStructures
  • Applications
  • DTOs
  • Separando responsabilidades

TDD - Test Driven Development

  • Criando testes com JUnit
  • Asserções
  • Implementando testes de integração

AWS - Amazon WebServer / Microsoft AZURE

  • Publicando o código no GITHUB
  • Publicando o projeto no AZURE com GUTHUB ACTIONS
  • Configurando servidor de aplicação no AWS
  • Configurando banco de dados no AWS
  • Publicando a aplicação
  • Elastic Beanstalk
  • RDS para gerenciamento de banco de dados
  • AWS EKS - Elastic Kubernetes Services
  • EC2 e VPC
  • Permissões

Serviços de Mensageria

  • Implementando mensageria com RabbitMQ
  • Producers
  • Consumers
  • Gerenciamento de filas

Docker

  • Docker, containers e imagens
  • DockerHub 
  • Realizando fluxo DevOps
  • Implantação automatizada de aplicações