▶ Vídeos Ver todos
Tutorial

Opera Browser Lets You Apply Dark Mode to Web Page

por Blog do KDS  –  30 abr 2026

NEW

Capa do artigo JUnit no IntelliJ: trecho de teste Java com assertEquals e assertThrows à esquerda, painel de resultados com dois testes aprovados e um reprovado à direita, e botão Leia o guia completo

Seu código funciona hoje. Mas funciona amanhã, depois de uma alteração?


Testes unitários garantem que cada parte do seu código faz exatamente o que deveria. Neste guia você aprende a criar e executar testes com JUnit 5 direto no IntelliJ IDEA, com exemplos práticos.

⏱️ Tempo: 8 minutos | 📊 Dificuldade: Iniciante | 🛠️ Requisitos: Java 17+, IntelliJ IDEA

❓ O Que É JUnit?

JUnit é o framework de testes mais usado no ecossistema Java. Ele executa pequenos trechos de código (chamados de testes) e verifica se o resultado é o esperado.

Conceito chave: Um teste unitário verifica uma única unidade de código (geralmente um método) de forma isolada.

Passo 1: Preparar o Projeto

1. Abra o IntelliJ e crie um projeto Java (Maven ou Gradle)

2. No pom.xml, adicione a dependência do JUnit 5:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.2</version>
    <scope>test</scope>
</dependency>

💡 Dica: Se usar Gradle, adicione testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2' no build.gradle.

Passo 2: Criar a Classe a Ser Testada

Vamos testar uma classe simples de calculadora:

public class Calculadora {

    public int somar(int a, int b) {
        return a + b;
    }

    public int dividir(int a, int b) {
        if (b == 0) {
            throw new IllegalArgumentException("Divisão por zero");
        }
        return a / b;
    }
}

Passo 3: Criar a Classe de Teste no IntelliJ

1. Clique com o botão direito na classe Calculadora

2. Escolha Generate → Test... (ou pressione Alt + Insert)

3. Selecione JUnit 5

4. Marque os métodos somar e dividir

5. Clique em OK

O IntelliJ cria automaticamente a classe CalculadoraTest em src/test/java.

Passo 4: Escrever os Testes

Substitua o conteúdo gerado por este exemplo:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class CalculadoraTest {

    private final Calculadora calc = new Calculadora();

    @Test
    void somarDoisNumerosPositivos() {
        assertEquals(5, calc.somar(2, 3));
    }

    @Test
    void somarComNumerosNegativos() {
        assertEquals(-5, calc.somar(-2, -3));
    }

    @Test
    void dividirNumerosExatos() {
        assertEquals(2, calc.dividir(10, 5));
    }

    @Test
    void dividirPorZeroDeveLancarExcecao() {
        assertThrows(IllegalArgumentException.class,
                () -> calc.dividir(10, 0));
    }
}

Passo 5: Executar os Testes

Opção 1: Clique no ícone ▶️ verde ao lado da classe ou do método

Opção 2: Pressione Ctrl + Shift + F10 com o cursor dentro do teste

Opção 3: Clique com botão direito na classe → Run 'CalculadoraTest'

Na aba Run inferior aparece a árvore de resultados. Verde = passou, vermelho = falhou.

Principais Assertions

Método Para que serve
assertEquals(esperado, real) Verifica igualdade
assertTrue(condicao) Verifica se é verdadeiro
assertFalse(condicao) Verifica se é falso
assertNull(objeto) Verifica se é nulo
assertThrows(Exception.class, ...) Verifica se lança exceção

✅ Boas Práticas

✔ Um teste verifica um único comportamento

✔ Nomes descritivos (ex: dividirPorZeroDeveLancarExcecao)

✔ Padrão AAA: Arrange, Act, Assert

✔ Testes independentes (não dependem uns dos outros)

🎯 Conclusão

Com JUnit 5 e IntelliJ, você cria testes em poucos cliques e os executa com um atalho. Comece pelos métodos mais críticos do seu código e expanda a cobertura aos poucos.

Última atualização: 3 de junho de 2026
Tags: Java, JUnit, IntelliJ, Testes Unitários, JUnit 5

JUnit no IntelliJ: Guia Prático de Testes Unitários com Exemplos

Leia mais

Comparação visual: Dual Write (problema com inconsistência)       vs Event Sourcing (solução com fila garantindo consistência)



Seu banco de dados foi atualizado, mas o cache não. Agora seus usuários veem dados antigos. Bem-vindo ao problema do Dual Write.

⏱️ Tempo: 4 minutos | 📊 Dificuldade: Médio

❓ O Que É Dual Write?

Dual Write = escrever em dois lugares ao mesmo tempo.

Exemplo: quando você atualiza um usuário no banco de dados, você também escreve no cache Redis. Parece lógico, certo? Errado.

Pseudocódigo (PERIGOSO):

usuario.nome = "João"
db.update(usuario) // Escreve no banco
cache.set(usuario) // Escreve no cache

❌ E se a linha 2 falhar? Cache tem dado novo, DB tem dado velho!

🐛 Por Que Dual Write É Ruim?

1️⃣ Inconsistência de Dados

Se uma das escritas falha, você fica com dados inconsistentes:

Cenário DB Cache Problema
Escreve DB ✓ Novo Velho ❌ Cache erro
Escreve Cache ✓ Velho Novo ❌ DB erro
Ambas falham Velho Velho ✓ OK (mas erro)

2️⃣ Race Conditions

Duas requisições simultâneas = ordem imprevisível:

Requisição A: Escreve saldo = 100
Requisição B: Escreve saldo = 50

Se A escreve no DB primeiro mas B escreve no cache primeiro:
DB = 50, Cache = 100 (inconsistente!)

3️⃣ Impossível de Corrigir

Não há "rollback" automático. Se o DB foi atualizado e o cache falhou, você nunca vai saber.

✅ A Solução Correta: Event Sourcing / Change Data Capture

Não escreva em dois lugares. Escreva em UM e deixe o resto sincronizar.

Abordagem 1: Event Sourcing

1. Escrever apenas no banco de dados
2. DB gera um "evento" (usuário.atualizado)
3. Sistema de filas (RabbitMQ, Kafka) consome o evento
4. Cache é atualizado de forma assíncrona

✓ Se cache falhar, fila retenta automaticamente
✓ Dados sempre consistentes no DB
✓ Cache é apenas um reflexo (pode ser deletado e recriado)

Pseudocódigo (CORRETO):

usuario.nome = "João"

// Escreve APENAS no DB
db.update(usuario) // ✓ Sucesso ou ❌ Erro

// DB gera evento automaticamente
evento = {tipo: "usuario.atualizado", id: 123}
kafka.publish(evento) // Coloca na fila

// BACKGROUND (consumer):
while (true) {
  evento = kafka.consume()
  usuario = db.get(evento.id)
  cache.set(usuario) // Atualiza cache
}

🆚 Dual Write vs Forma Correta

Aspecto Dual Write ❌ Event Sourcing ✓
Consistência Arriscada Garantida
Rollback Impossível Automático (fila)
Auditoria Manual Integrada (eventos)
Escalabilidade Frágil Robusta

⚡ A ÚNICA Exceção: Transação ACID

Se ambas as operações são no MESMO banco de dados (ex: tabela principal + tabela auditoria), você usa transação ACID. Isso não é "dual write", é uma transação única:

BEGIN TRANSACTION
  UPDATE usuarios SET nome='João'
  INSERT INTO auditoria (evento) VALUES ('atualizado')
COMMIT // Tudo ou nada

✓ Seguro porque é transação ACID no mesmo DB

✅ Checklist: É Dual Write Perigoso?

Escrevo em 2+ bancos de dados diferentes?

Escrevo em DB e Cache/Search/Queue?

Não há transação ACID envolvendo ambos?

A ordem das escritas pode variar?

Se marcou sim em qualquer um: Você está usando Dual Write perigoso. Use Event Sourcing.

🎯 Conclusão

Dual Write é a próxima bomba-relógio do seu código. Parece funcionar até o momento em que não funciona mais.

Regra simples:

✓ Escreva em UM lugar (banco de dados)
✓ Deixe eventos sincronizarem o resto
✓ Cache/Search/Queue são cópias (can be recreated)

Última atualização: 1º de junho de 2026
Tags: Arquitetura, Dual Write, Banco de Dados, Cache, Event Sourcing

Dual Write: Por Que Esse Padrão É Perigoso

Leia mais

Memória Virtual no Windows: Redimensionar ou Desativar

Seu disco está cheio por causa da "memória virtual"?

A memória virtual (swap) é um arquivo no disco que funciona como "RAM extra" quando sua memória RAM fica cheia. Às vezes fica MUITO grande e consome espaço desnecessário.

⏱️ Tempo: 5 minutos | 📊 Dificuldade: Muito Fácil

❓ O Que É Memória Virtual?

Simples: Quando sua RAM fica cheia, Windows cria um arquivo no disco (C:\pagefile.sys) que funciona como memória extra. Isso fica MUITO lento, mas funciona.

Ilustração mostrando como memória virtual funciona:       RAM rápida vs disco lento, com pagefile.sys recebendo       dados quando RAM enche


Problema: Este arquivo pode crescer para 5GB, 10GB, 20GB... e consumir seu disco todo.

📊 Passo 1: Verificar Tamanho Atual

1. Abra "Este Computador"

2. Clique direito em "C:" → Propriedades

3. Note o espaço usado vs disponível

4. Se tem um arquivo "pagefile.sys" GIGANTE = problema

💡 Dica: No explorador, ative "Mostrar arquivos ocultos" para ver pagefile.sys

🔧 Passo 2: Redimensionar (Recomendado)

Melhor opção: Deixar memória virtual, mas menor. Segue abaixo:

1. Tecla Windows + Pause (abre Informações do Sistema)

2. Clique "Configurações avançadas do sistema" (esquerda)

3. Aba "Avançado" → Botão "Desempenho" → "Configurações"

4. Aba "Avançado" → Botão "Alterar..." (Virtual Memory)

5. DESMARQUE "Gerenciar automaticamente"

6. Selecione disco C:

7. Escolha "Tamanho personalizado"

8. Tamanho Inicial = RAM × 1.5 | Tamanho Máximo = RAM × 3

9. "Definir" → OK → Reinicie

Exemplo Prático:

RAM Disponível Tamanho Inicial Tamanho Máximo
8 GB 12 GB (8 × 1.5) 24 GB (8 × 3)
16 GB 24 GB (16 × 1.5) 48 GB (16 × 3)
32 GB 48 GB (32 × 1.5) 96 GB (32 × 3)

⚠️ Passo 3: Desativar (Avançado)

Só se você tem RAM SUFICIENTE (16GB+):

1. Mesmos passos acima (até Virtual Memory)

2. Selecione o disco C:

3. Escolha "Sem ficheiro de paginação"

4. Clique "Definir" → OK → Reinicie

⚠️ Aviso: Se desativar e sua RAM ficar cheia, Windows vai TRAVAR e você pode perder trabalho. Só desative se tem RAM suficiente (16GB+).

✅ Checklist

Verifiquei o tamanho atual de pagefile.sys

Abri "Configurações de Memória Virtual"

Defini valores para minha RAM

Cliquei OK e reiniciei

Confirmei que disco está com mais espaço

✓ Pronto! Memória virtual otimizada. Disco liberado.

Última atualização: 30 de maio de 2026
Tags: Windows, Memória Virtual, Disco, Performance

Memória Virtual no Windows: Redimensionar ou Desativar

Leia mais

Tech + Investimentos: Por Que Todo Programador Deveria Aprender a Investir

⚠️ AVISO IMPORTANTE - DISCLAIMER

Este artigo NÃO é uma recomendação de investimento. O objetivo do KDS Blog é educar sobre estratégias de investimento, análise de ações, mercado financeiro e programação de forma descomplicada e educacional.

As informações aqui apresentadas são baseadas em estudos públicos, históricos de dividendos e métodos conhecidos de valuation. Investimentos em ações envolvem riscos, incluindo perda total do capital investido.

Consulte um profissional certificado pela CVM ou um assessor de investimentos antes de tomar decisões financeiras.

Você sabe quem é Décio Bazin, e o que vocês têm em comum?

Ele usa uma formula matemática, dados e código para tomar decisões financeiras. Enquanto a maioria investe no "palpite", eles usam matemática pura.

E aqui está o segredo: Como programador, você TEM A VANTAGEM. Você já pensa em lógica, dados e algoritmos. Aprender a investir não é um hobby — é usar sua profissão a seu favor.

🎯 Neste artigo: Descobrir por que programadores fazem melhor investidores, entender a fórmula de Bazin, usar a calculadora abaixo, e criar sua primeira valuation.

Teste Agora: Calculadora Bazin Online

Use a calculadora abaixo para descobrir o preço justo de uma ação. Insira dados reais e veja o resultado!

Exemplo prático: Calculadora da calculadora

Por Que Programador é Melhor Investidor?

1️⃣ Você Já Pensa em Dados

Enquanto o investidor comum olha para um gráfico e diz "parece que sobe", você analisa: "qual é o padrão nos dados?"

2️⃣ Você Conhece Algoritmos

A matemática financeira é um algoritmo. A formula do Bazin é um algoritmo. Você já está acostumado a seguir lógica pura.

3️⃣ Você Pode Automatizar

Enquanto outros usam Excel manual, você cria um scraper que coleta dados da B3, calcula valuations e envia alertas.

4️⃣ Você Entende Risco

No código, você sabe: "quanto maior o risco, maior o retorno esperado." É a lógica das ações.

💡 A Diferença: Investidor comum investe com emoção. Programador investe com lógica. Quem ganha?

Quem É Décio Bazin?

Décio Bazin é considerado um dos melhores investidores do Brasil, em seu livro no seu livro faça fortuna com ações que seja tarde, Bazin recomenda: 6% pois observou que universalmente esta seria uma taxa fixa aceita na remuneração de ações. Seu segredo? Usar fórmulas simples e repetir 50 anos.

Filosofia de Bazin:

  • ✅ Investir em empresas com dividendos altos
  • ✅ Usar fórmulas matemáticas (não palpite)
  • ✅ Margem de segurança grande (sempre)
  • ✅ Comprar ações de qualidade com desconto
  • ✅ Reinvestir os lucros (juros compostos)

A Fórmula Bazin (Explicada)

Preço Justo = Dividendo Médio ÷ Taxa Mínima Exigida

Entendendo cada termo:

Termo O Que É Exemplo
DM Dividendo Médio R$ 
Divn  Valor médio que a empresa pagou em dividendos, neste exemplo pegamos os últimos 3 anos 3
Segurança Taxa mínima exigida  6%


🎯 Em Linguagem de Programador: É como calcular se o "retorno" da ação (ROE) é melhor que colocar dinheiro em títulos (SELIC). Se sim, vale a pena comprar (com margem de segurança).

Exemplos Reais: Bazin em Ação

Caso 1: Bradesco (BBAS3)

Dados:( (Div1 + Div2 + Div3) ÷ 3 ) ÷ 0,06

Pj =((2,28 + 2,65 + 1,12) ÷ 3 ) ÷ 0,06

PJ = (6,05 ÷ 3 ) ÷ 0,06 

PJ = (2.0166 ) ÷ 0,06 

PJ=  R$ 33,61

Preço Justo (Bazin): R$ 33,61

Preço Atual: R$ 28,50

Resultado: ✅ COMPRA (15% abaixo de desconto vs preço justo)

Bazin usa 6% como taxa mínima de rentabilidade esperada. Se você quer ganhar mais, use uma taxa maior (7%, 8%). Se aceita ganhar menos, use menor (5%).

Caso 2: Comparar com Tesouro Direto

Pergunta: Vale mais a pena comprar essa ação ou deixar no Tesouro Direto (SELIC)?

💰 Tesouro Direto: 6% ao ano (garantido, recomendação Bazin)

📈 Ação com Dividendo Médio (Método Bazin): Dividendos variáveis + potencial de valorização

⚠️ Mas ação tem risco, então precisa estar com desconto de 20-30%

Como Usar a Calculadora (Passo a Passo)

Passo 1: Conseguir os Dados da Ação

Onde buscar:

  • Onde buscar DIVIDENDOS históricos:
  • 📊 Fundamentus.com.br - Histórico de dividendos (últimos 3 anos)
  • 💹 Status Invest - Proventos e dividendos
  • 🏦 Site da Empresa - Relatórios financeiros
  • 📱 B3.com.br - Arquivo de dividendos

Passo 2: Inserir na Calculadora

1. Insira Dividendo Ano 1 (procure no Fundamentus)

2. Insira Dividendo Ano 2

3. Insira Dividendo Ano 3

4. Defina Taxa Mínima (Bazin recomenda 6%)

5. Clique "CALCULAR PREÇO JUSTO"

Implementação em Java (Para Devs)

Quer criar sua própria calculadora? Aqui está o código Java que você pode usar como base:

public class CalculadoraBazin {
    
    /**
     * Método de Décio Bazin
     * Fórmula: Preço Justo = Dividendo Médio / Taxa Mínima
     */
    public double calcularPrecoJusto(double dividendo1, double dividendo2, 
                                     double dividendo3, double taxaMinima) {
        // Calcular dividendo médio dos 3 anos
        double dividendoMedio = (dividendo1 + dividendo2 + dividendo3) / 3;
        
        // Converter taxa de percentual para decimal
        double taxaDecimal = taxaMinima / 100;
        
        // Fórmula CORRIGIDA: Preço Justo = Dividendo Médio / Taxa Mínima
        return dividendoMedio / taxaDecimal;
    }
    
    /**
     * Método auxiliar com array de dividendos
     */
    public double calcularPrecoJusto(double[] dividendos, double taxaMinima) {
        if (dividendos.length != 3) {
            throw new IllegalArgumentException("Precisam ser exatamente 3 anos de dividendos");
        }
        return calcularPrecoJusto(dividendos[0], dividendos[1], dividendos[2], taxaMinima);
    }
    
    /**
     * Exemplo: BBAS3 (Banco do Brasil)
     */
    public static void main(String[] args) {
        CalculadoraBazin bazin = new CalculadoraBazin();
        
        // Dividendos BBAS3: 2023, 2024, 2025
        double precoJusto = bazin.calcularPrecoJusto(2.28, 2.65, 1.12, 6.0);
        
        System.out.println("=== ANÁLISE BAZIN (CORRIGIDA) ===");
        System.out.println("Dividendos: R$ 2.28 + R$ 2.65 + R$ 1.12");
        System.out.println("Dividendo Médio: R$ " + String.format("%.4f", (2.28 + 2.65 + 1.12)/3));
        System.out.println("Taxa Mínima: 6%");
        System.out.println("Preço Justo: R$ " + String.format("%.2f", precoJusto));
        System.out.println("\nPreço Atual: R$ 28.50");
        System.out.println("Desconto: " + String.format("%.1f%%", ((precoJusto - 28.50) / precoJusto) * 100));
    }
}

✅ Checklist: Antes de Comprar Uma Ação (Bazin)

LPA está crescendo (últimos 3 anos)?

Ação está com desconto vs Preço Justo?

Empresa paga dividendos?

Margem de Segurança ≥ 20%?

Tenho dinheiro guardado (não é empréstimo)?

Planejamento é longo prazo (5+ anos)?

✓ Se marcou tudo: Você está pronto para sua primeira compra Bazin!

Conclusão

Ser programador e investidor é uma combinação poderosa.

Você tem lógica, dados e ferramentas. Bazin te deu a fórmula. Agora é executar:

  1. Aprenda a usar a calculadora (passe por alguns exemplos)
  2. Crie uma versão em Java/Python para seus projetos
  3. Faça sua análise de 3 a  5 ações que você conhece
  4. Compare com o preço atual (Fundamentus)
  5. Comece com uma compra pequena (teste a estratégia)

Você não está investindo em ações. Você está resolvendo um problema matemático. E você já é bom nisso.

Última atualização: 28 de maio de 2026
Autor: KDS Blog - Tech + Investimentos
Tags: Bazin, Valuation, Investimentos, Python, Java, Calculadora

Tech + Investimentos: Por Que Todo Programador Deveria Aprender a Investir

Leia mais

Mais lidos esta semana

Mais Lidos

Ver ranking
4 de 20 posts

✓ Todos os posts foram carregados