Microsserviços
- API Gateway
- Vantagens e Desvantagens de Microsserviços e Monolitos
- Monolith (https://microservices.io/patterns/monolithic.html)
- Microservices (https://microservices.io/patterns/microservices.html)
- DLQ (https://imasters.com.br/desenvolvimento/construindo-reprocessamento-confiavel-e-dead-letter-queues-com-kafka)
- CQRS (https://www.eduardopires.net.br/2016/07/cqrs-o-que-e-onde-aplicar/) (https://microservices.io/patterns/data/cqrs.html)
- Sagas (https://www.zup.com.br/blog/padrao-saga-para-arquitetura-de-microsservicos) (https://microservices.io/patterns/data/saga.html)
- BFF (backend for frontend)
- Estratégias de deploy
- Estratégias de rollback
Boas práticas
- Clean Code
- variaveis de dominio
- codigo auto explicativo não precisa de comentários
- utilizar asserções positivas
- não usar diferentes níveis de abstrações no mesmo método
- menor quantidade de parâmetros possíveis no metodo
- apenas uma responsabilidade por método
- evitar nomes de classes genéricos
- Clean Architecture/Arquitetura Hexagonal/Onion Architecture
- Foca em separar e abstrair as camadas externas/terceiros/frameworks do código da aplicação
- usa portas e adapters
- Code smell
- Boas práticas
- SOLID
- Design Patterns
- Organização de Projetos (http://www.javapractices.com/topic/TopicAction.do?Id=205)
- Package By Feature
- Package By Layer
Devops
- CI
- CD
- Docker
- Kubernetes
- Jenkins
Rest
- Boas práticas
- Nomenclatura
- Verbos e status code
- Query Params
- Path Params
- Nível de maturidade (https://rivaildojunior.medium.com/modelo-de-maturidade-de-richardson-para-apis-rest-8845f93b288)
- Idempotência (GET, PUT e DELETE) (https://martinfowler.com/articles/richardsonMaturityModel.html)
- Versionamento de Api
- Swagger
Spring
- Spring Data (Repository, Paginação, Lazy, Eager)
- Spring Security
- Spring Cache
- Spring Cloud
- Spring Webflux
Segurança e Autenticação
- oAuth
- JWT
- OWASP
Java
- Versões
- 8
- lambdas
- streams
- default methods
- 9
- módulos (jigsaw)
- var
- 11
- http client não bloqueante
- var em contexto de lambdas
- completable future
- 12 / 13
- switch expressions
- otimização no GC G1
- 14
- pattern matching para o instaceof
- 17
- records
- stream toList method
- sealed classes
- Features Novas
- Streams, Lambdas
Testes
- Teste de Integração
- Testes Unitários
- BDD - Behaviour Driven Design
- TDD - Test Driven Design
Modelagem UML
- Diagramas
Code Review
Mensageria
-
Kafka
- Consumer
- Offset
- Partitions e Keys
- Clusters
- Schema Registry (avro)
-
Rabbit (AMQP)
-
Publisher / Subscribe
-
Diferença de Tópico e Fila (https://www.blogdoft.com.br/2021/02/06/o-que-sao-mensageria-eventos-filas-e-topicos/)
-
RPC e gRPC
clean code merge sort sort recursivo fila lista grafos ordenação
estudar features do java 11
niveis de log DEBUG é para relacionar dados da aplicação niveis de log TRACE é bacana testes end to end monolitos são mais rapidos