Java

Escrevendo bons testes
Artigo

Escrevendo bons testes

Aprenda a escrever testes eficazes superando as limitações do ambiente de testes. Entenda a diferença entre emular e simular, resolva dependências de frameworks, sistemas externos, SO, tempo e schema de banco. Descubra como usar Spring Boot, Quarkus, Testcontainers e criar DSLs para testes mais legíveis e confiáveis.

Como identificar e controlar a complexidade através de abstrações eficientes?
Artigo

Como identificar e controlar a complexidade através de abstrações eficientes?

Eu já rejeitei PRs só porque o código estava "limpo" demais. Neste artigo, vou te mostrar que a verdadeira complexidade não está nas linhas, mas nas abstrações que você deixa de criar. Vamos falar sobre os sintomas que matam projetos (amplificação, carga cognitiva e os tais "desconhecidos desconhecidos") e como um simples buffer pode salvar seu sistema.

Por que escrever um bom código?
Artigo

Por que escrever um bom código?

Por que escrever um bom código? Não por estética, mas por estratégia. Neste artigo desmonto a subjetividade do termo "bom" para mostrar que a qualidade do código impacta diretamente nos custos, na evolução do projeto e até na satisfação do usuário. Com exemplos reais, de vazamentos de dados a bugs que derrubaram a nota de aplicativos, explico que escrever código claro e comunicativo é um investimento que evita retrabalho e salva negócios no médio e longo prazo.

Ponteiro de Schrödinger
Artigo

Ponteiro de Schrödinger

Ponteiros não existem em Java. Ou existem? A verdade é que o conceito está lá, disfarçado de referências, NullPointerException e variáveis final. Neste artigo, exploro a fronteira entre a abstração das linguagens modernas e a realidade do hardware, passando por exemplos em C e Java, e mostrando como é fácil — e perigoso — reinventar ponteiros sem perceber. Uma reflexão sobre design de código, concorrência e as armadilhas que criamos ao ignorar a biblioteca padrão.

Entendendo o Jakarta Persistence API (JPA)
Artigo

Entendendo o Jakarta Persistence API (JPA)

O JPA é uma especificação Java que facilita o mapeamento de objetos Java para tabelas em um banco de dados relacional. Ele é amplamente utilizado em frameworks como Spring e Quarkus, e é uma parte fundamental do ecossistema Java para desenvolvimento de aplicações que interagem com bancos de dados. Neste post, vamos explorar os principais componentes do JPA e como utilizá-los para interagir com um banco de dados.

Injeção de Dependência e sua importância no gerenciamento da conexão com o banco de dados
Artigo

Injeção de Dependência e sua importância no gerenciamento da conexão com o banco de dados

A injeção de dependência é uma prática fundamental para o gerenciamento eficiente da conexão com o banco de dados em aplicações Java. Neste post, exploramos o que é injeção de dependência, como ela funciona e por que é tão importante para o desenvolvimento de aplicações Java modernas.

Entendendo o JDBC
Artigo

Entendendo o JDBC

O JDBC é uma API que permite a comunicação entre aplicações Java e bancos de dados. Ele fornece um conjunto de classes e interfaces que facilitam a execução de operações de banco de dados, como consultas, inserções, atualizações e exclusões. Nesse post, vamos explorar os principais componentes do JDBC e como utilizá-los para interagir com um banco de dados.

Sotaques e fluência em linguagens de programação
Artigo

Sotaques e fluência em linguagens de programação

Cada linguagem de programação possui um sotque específico e é fácil identificar quando um desenvoledor de outra linguagem não busca conhecer a cultura e os padrões de uma linguagem. Mas esse comportamento não é um mero preciosismo estético, bugs podem aparecer ao não se atentar para a maneira como as coisas são feitas.