Evento Javax - Palestra - Simplificando APIs Rest
Slides 15 Meetup Presencial Curtiu ? Assina minha Newsletter
Slides 15 Meetup Presencial Curtiu ? Assina minha Newsletter
Paralelismo é extremamente funcional quando temos algumas responsabilidades bem definidas dentro do nosso sistema, a divisão de responsabilidade entendo que é o principal ponto de partida. Escopo Vamos imaginar um sistema que fará o fechamento da folha de pagamento dos funcionários. Nesse fechamento hipotético precisamos identificar quantidade de horas extras dos funcionários, multiplicar o resultado pelo valor da hora do funcionário e adicionar o valor encontrado ao salário para assim chegarmos ao valor final a ser pago....
Neste exemplo, veremos como implementar o paralelismo usando Java 21. Anteriormente, para alcançar paralelismo, utilizávamos e ainda usamos o CompletableFeature, que funciona muito bem, mas ainda é um pouco verboso. Para começar, criaremos dois métodos que retornam uma String. Dentro de cada método, faremos a Thread esperar por alguns segundos para simbolizar uma operação de I/O. private static String executeTask1() throws InterruptedException { logger.info("task 1"); Thread.sleep(1000); return "task1"; } O primeiro método espera 1 segundo antes de retornar a String, e o segundo método é semelhante, também aguardando 1 segundo....
Existem vários princípios que ajudam na implementação de códigos mais desacoplados e tudo mais, aqui a ideia e exemplificar como podemos fazer isso. Exemplo Imagine que estamos implementando um código que vende jornal, teremos uma entidade que representa a Banca e outra que representa a Carteira de um cliente. Implementação acoplada public void pagaJornal(BigDecimal valorJornal, Carteira carteira){ if(carteira.getSaldo().compareTo(valorJornal) > 0){ cateira.debitaSaldo(valorJornal); }else{ // exception SaldoInsuficiente } } Nessa primeira abordagem a Banca pega a carteira do cliente verifica se tem o valor necessário e caso sim tira o valor do jornal de dentro da certeira do cliente, talvez isso não seja tão legal pois a Banca sabe muito sobre a carteira do cliente....
As vezes precisamos executar alguns comandos quando nossa aplicação é iniciada, portanto quem usa algum framework moderno consegue saber quando sua app subiu e com o CDI não é diferente. date: ‘2022-08-30’ CDI contém uma funcionalidade de ajuda na implementação do padrão de projeto Observer. A Própria especificação usa esse padrão em suas rotinas internas, vamos usar umas dessas chamadas para observarmos quando o CDI for carregado ao levantar o servidor de aplicação, com o código abaixo fica fácil:...