Streams em JAVA: Tudo que você precisa saber

Map, Filter, Reduce Vamos começar com um exemplo? * Given a list of people * We need to compute the average of the age of those people * For the people older than 20 Nesse caso, é meio claro, começamos com um objeto pessoa, mas trabalharemos / transformaremos o dado de uma maneira que consigamos a idade (map). O map pega um objeto, e mapeia para outro, geralmente de tipo diferente Com isso, vamos filtrar o dado age, para que ele só compute a média de maiores de 20 anos....

12 de novembro , 2023 · 11 minutos · 2219 palavras · Me

TestContainers em Java: Testes de integração, repositórios e outras coisas!

Aviso: Esse post ainda passará por uma revisão! Testando Repositórios (De verdade!) Podemos testar repositórios de alguns jeitos, uma das maneiras é utilizar um banco em memória. Para SQL, h2 é fácil e rápido, podemos fazer as configs no banco usando um application-properties para os testes e validar tudo bonitinho normalmente 🙂. Outra alternativa seria utilizar TestContainers Conseguindo testar e subir repositórios e message brokers reais, conseguimos fazer testes de integração!...

20 de novembro , 2023 · 3 minutos · 561 palavras · Me

O que são microserviços? Para que servem e quando usar?

Disclaimer: Esse artigo é baseado totalmente no Livro Building Microservices, do Sam Newman! Visão Geral Microserviços são partes independentes entre si que são modeladas em torno de uma regra de negócio. Um serviço encapsula uma funcionalidade e permite que ela seja acessível por uma rede através de requisições REST. Microserviços são um tipo de arquiteturas orientadas a serviço, onde fronteiras entre serviços devem ser traçadas, mas apesar disso o release independente é chave....

7 de maio , 2024 · 8 minutos · 1576 palavras · Me

6. Virtual Threads em Java! Fazendo a sua aplicação voar!

Seja bem vindo, esse daqui é o último post da infinita série sobre concorrência em Java. A série é focada em Java, mas esse post em especial apresenta conceitos relevantes para literalmente todas as linguagens e também não é uma leitura muito extensiva :). Nosso roteiro é: Threads! Processando em Paralelo e Ganhando Throughput Sincronização de Threads - DeadLocks, Zonas Críticas e Condições de Corrida Concorrência, agora melhor - Classes Thread Safe Executors, Thread Pools e Futures CompletableFuture Virtual Threads O Artigo Primeiro, vamos estabelecer objetivos desse artigo:...

6 de abril , 2024 · 18 minutos · 3680 palavras · Me

5. CompletableFuture - Dominando o Assíncrono em Java!

Seja bem vindo, esse daqui é o quinto de 6 posts sobre concorrência em Java. A série é focada em Java, mas esse post em especial apresenta conceitos relevantes para literalmente todas as linguagens e também não é uma leitura muito extensiva :). Nosso roteiro é: Threads! Processando em Paralelo e Ganhando Throughput Sincronização de Threads - DeadLocks, Zonas Críticas e Condições de Corrida Concorrência, agora melhor - Classes Thread Safe Executors, Thread Pools e Futures CompletableFuture Virtual Threads Introdução e “Join” Suponha esse código:...

5 de abril , 2024 · 8 minutos · 1624 palavras · Me