mvp_2

Separando responsabilidades no Android com MVP

Estamos familiarizados a trabalhar no Android com Activities e Fragments, e muitas vezes precisamos acessar dados via requisição, ou até mesmo de um banco de dados local, e exibir informações na tela do dispositivo para o usuário. Essa é uma tarefa que acontece quase que diariamente.

Se você sabe do que estou falando, já deve ter criado uma simples lista de algum JSON e exibido no seu RecyclerView, que foi declarado na sua Activity ou Fragment.

Nesse post, abordaremos como melhorar a separação das tarefas envolvidas nesse processo para otimizar nosso código e minimizar o acoplamento entre as camadas.

Leia Mais

Hello Spring Batch

Hello Spring Batch

Spring Batch

Spring Batch provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. It also provides more advanced technical services and features that will enable extremely high-volume and high performance batch jobs through optimization and partitioning techniques. Simple as well as complex, high-volume batch jobs can leverage the framework in a highly scalable manner to process significant volumes of information.

Ok, isso é a definição da documentação oficial, mas e ai como eu uso esse negócio? Leia Mais

testinprogess

Sobre como testamos

Uma pergunta: Por que testamos? Por que fazemos testes? Me refiro a testes automatizados, desde o ponto de vista do desenvolvedor. De qualquer tipo. Pode ser unitários, de aceite, de integração ou até de performance. Quase todos passamos algum momento na nossa vida onde pensávamos que não era preciso testar nosso código. Porém, agora testamos como loucos, convencidos de que são necessários. Ou não? Leia Mais

scheduled-tasks

Execução de Jobs com Spring

Alguma vez já usou a execução de jobs do Spring? Realmente é muito simples. Simplesmente funciona sem muita parafernália. Porém, recentemente topamos com um problema num cenário onde não desejamos a execução. Mas vamos por partes. Primeiro, de forma rápida, vamos ver como configurar o seu projeto Spring-boot para permitir a execução de jobs, e depois planteamos e resolvemos o problema. Leia Mais

sonatype

Publicando artefatos no Maven Central Repository

Dependências em seu projeto

Se você desenvolve software, certamente já precisou usar um framework ou uma biblioteca de terceiros para resolver algum problema e deixar de reescrever um tanto de código.

Várias linguagens e plataformas possuem suporte a gerenciamento de pacotes e dependências. No PHP temos o Composer [1]. Para projetos JavaScript que usam NodeJS existe o NPM [2] para manter os módulos. Em projetos Ruby, usamos o rubygems [3], mas usamos o Bundler [4] para controle das Gems nos projetos de forma mais descritiva e de alto nível de abstração do rubygems. Já o Python possui o pypi [5] para cuidar dos pacotes ou seja-lá-que-nome-eles-dão para as dependências. Leia Mais

showmesomecode

MapStruct – Mapeando seus DTOs para Model

A utilização de DTOs é bastante conhecida na comunidade de desenvolvimento, mas afinal, o que são? Onde vivem? Do que se alimentam? Leia Mais

Consumindo uma API – Parte II

Consumindo uma API – Parte II

Vamos continuar com o consumo de nossa API. Se você não leu a primeira parte, pode acessar aqui.

Um dos principais problemas (agora sim, problemas) da nova arquitetura é a performance consumindo API. O que antes era abrir conexão de banco, fazer consulta e voltar os resultados, agora é abrir um protocolo http, mandar a requisição, esperar o servidor pegar os dados, transformá-los em json, recebe-los, transformá-los em objeto e mostrá-lo. Então, podemos ter um gargalo na nossa aplicação que antes nem pensávamos na possibilidade de existir! Leia Mais

Consumindo uma API – Parte I

Consumindo uma API – Parte I

Atualmente, a moda das arquiteturas de sistemas é focada para microservice. Isso comporta uma série de vantagens, mas ao mesmo tempo que desaparecem certos cenários, outros menos frequentes antigamente, aparecem mais. No caso que nos ocupa é o consumo (e produção, claro) de API.  Se não está muito claro para você, da uma lida na entrada sobre O que é um microservice.

Escolhi a palavra cenário para não escrever problema, pois de fato não é um problema, só um cenário diferente inerente à mudança de paradigma. O objetivo desse post é mostrar sem aprofundar uma ferramenta interessante para o consumo de API e uma possível configuração para ambientes de desenvolvimento. Numa segunda parte, mostraremos uma possibilidade para melhorar a performance de nossa aplicação cliente. Leia Mais

meme-5473-calma-nao-tenha-pressa

WebDriverWait – Fazendo o Selenium esperar

No dia a dia de automação de testes encontramos problemas com a velocidade da execução dos testes. Acontece que, quando fazemos os cliques manualmente, é natural esperarmos uma resposta do sistema para clicarmos novamente. Existe um grande trabalho de usabilidade para dar os melhores feedbacks ao usuário.
No mundo virtual da automação de testes isso não existe. Nosso driver não sabe que deve aguardar uma notificação de sucesso, ou um alerta de confirmação. Ele não entende que ao clicar em um botão, deve esperar uma resposta, ou até mesmo a página carregar. Vamos ensiná-lo. Leia Mais

Projeto Java – Parte 3 – Spring Data JPA

Projeto Java – Parte 3 – Spring Data JPA

Vamos continuar com a terceira parte da série Projeto Java e vamos apresentar algumas ferramentas interessantes.

Para poder ter alguma coisa específica, continuaremos o desenvolvimento de nosso projeto. Fizemos nosso planejamento, priorização e estimativa (mentiiiiraaaa) e a seguinte tarefa para puxar é o cadastro de candidatos. Como explicamos no post sobre processo, as vezes podemos identificar que uma história é na realidade um épico, pois é fácil identificar varias histórias menores nela. Leia Mais