Porque usar LLMs para programar é uma péssima ideia?
Será que usar LLMs para programar é realmente uma péssima ideia? Entre a imposição do mercado, a perda do raciocínio crítico e os custos ocultos, a resposta não é tão simples quanto parece.
Reflexões, tutoriais e descobertas do mundo real. Entre Java, Kafka, bancos de dados e processamento de streams, sobra espaço para filosofia do código e materiais para palestras.
LLMs não são mágicas, nem inteligências. São máquinas probabilísticas treinadas com seu trabalho gratuito. Quero explorar os 8 maiores problemas éticos que o uso de IAs generativas trazem: da exploração de trabalhadores africanos ao consumo de energia suja, passando por vieses invisíveis e a homogeneização da cultura.
Será que usar LLMs para programar é realmente uma péssima ideia? Entre a imposição do mercado, a perda do raciocínio crítico e os custos ocultos, a resposta não é tão simples quanto parece.
Descubra como o Event Storming, uma técnica colaborativa do Domain-Driven Design, transforma a modelagem de software ao colocar especialistas do negócio e desenvolvedores lado a lado para mapear fluxos, identificar lacunas e construir uma linguagem comum.
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.
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.
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.
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.
Conheça as principais bibliotecas e frameworks para acesso a dados em Java: JDBC, jOOQ, JPA, Hibernate, Spring Data, Flyway e muito mais. Aprenda as diferenças entre cada abordagem e como escolher a melhor para seu projeto.
Aprenda a criar e modificar tabelas em SQL com exemplos práticos em PostgreSQL. Descubra a diferença entre constraints em nível de coluna e tabela, chaves primárias compostas, e como nomear constraints para facilitar a manutenção do banco de dados.
Dê vida aos seus dados com SQL! Neste tutorial imersivo, você aprenderá a construir consultas eficientes, explorar junções complexas, aplicar funções de agregação e organizar seu código com CTEs e subconsultas — tudo isso usando um modelo realista de banco de dados corporativo. Ideal para desenvolvedores, analistas e estudantes que desejam dominar a linguagem SQL além do básico e escrever queries poderosas e otimizadas.
Um guia prático com dicas essenciais para quem está começando na programação, desde entender o que é programar até escolher a IDE certa e evitar armadilhas comuns. Baseado em anos de experiência e observações de iniciantes nas redes sociais.
Nesse post vamos configurar HTTPS com certificados Let's Encrypt para qualquer aplicação web, usando NGINX como proxy reverso e Docker para um ambiente isolado e reproduzível.
Neste post, aprofundamos os fundamentos da normalização de dados, explorando como organizar as tabelas de um banco de dados relacional para eliminar redundâncias, garantir integridade e facilitar a manutenção. Passaremos pelos conceitos essenciais de dependência funcional, chaves e superchaves, e percorreremos passo a passo as seis formas normais — da 1NF à 5NF — ilustrando com exemplos práticos de violação e correção baseados em um modelo de funcionários.