E-BOOKS GRATUITOS

Dois e-books que vão ampliar suas perspectivas sobre design de código e concorrência

Já ouviu o ditado que "na prática nem sempre a teoria é a mesma"? É o que estes dois e-books se propõem a combater. Eles trazem explicações e dicas extraídas do dia a dia, sobre como lidar com concorrência, paralelismo e também sobre como escrever código que realmente facilita manutenção.

Você vai encontrar explicações em cima de códigos de verdade, extraídos do campo de jogo. A ideia é que você consiga sim aplicar tudo que explicamos.

O que você vai aprender com o E-book sobre Design de Código

Arquitetura x Design

Vamos discutir a necessidade de termos um approach para o Design do código tão pragmático quanto temos para decidir a arquitetura do software.

Separamos as bordas externas do sistema do seu núcleo

Vamos demonstrar como você pode isolar o núcleo do seu código e porque isso é importante.

Toda indireção aumenta a complexidade

Vamos discutir os efeitos gerados no nível de dificuldade de entendimento do código em função de cada camada que vamos adicionando.

Deixe pistas onde não for possível resolver com compilação

Sempre queremos fazer o código mais entendível possível, mas será que apenas um código bem escrito é suficiente?

A complexidade do nosso código é proporcional a complexidade da feature

Como implementar uma funcionalidade escrevendo código que seja suficiente para aquela necessidade?

Só alteramos estado de referências que criamos

Quanto mais complexo é o sistema, mais alteração de estado tem durante um fluxo de negócio. Como garantir que a mesma alteração não vai ser chamada mais de uma vez em camadas diferentes?

API's não democráticas

Construir uma API é um exercício de design. Como fazer para fornecer a experiência de uso mais fluida para a próxima pessoa?

Favorecemos a coesão através do encapsulamento

Trabalhar firme para manter o código coeso é um dos melhores custo benefícios que uma base de código pode ter. Como você pode fazer para ter um jeito prático de maximizar a coesão?

Testes automatizados devem aumentar confiabilidade da aplicação e ajudar na evolução

Qual o caminho para criar uma bateria de testes que realmente aumente a confiabilidade do software?

O que você vai aprender com o E-book sobre Concorrência e Paralelismo

Quando e por que parallelStream() pode prejudicar mais do que ajudar.

Como combinar CompletableFuture, pools de threads e chamadas bloqueantes sem travar sua aplicação.

Como aplicar RateLimiter e Semaphore para proteger suas dependências e controlar fanouts.

O que os virtual threads realmente resolvem — e por que só 'tornar tudo async' não é a solução mágica.

Erros comuns em pipelines concorrentes em produção e como evitá-los com práticas seguras.

Como avaliar de forma precisa os gargalos da sua aplicação.

Preencha o formulário e tenha acesso imediato aos e-books

Desenvolva software de alta qualidade, entregue mais rápido e com total confiança

A Jornada Dev Eficiente é um treinamento completo para desenvolver código de alta qualidade em qualquer contexto, com fluidez e confiança. Você aprenderá a cuidar do ativo mais valioso de qualquer empresa de tecnologia: o código. Com nosso Roteiro Dev + Eficiente, você terá um guia estruturado para aproveitar ao máximo nossos cursos e acelerar sua evolução como desenvolvedor.

Faça sua inscrição agora e tenha acesso a todos os cursos da plataforma Dev+Eficiente

NÃO PERCA A CHANCE DE SER UM DEV + EFICIENTE

QUEM SERÃO SEUS MENTORES?

Alberto Souza

Alberto Souza

Education Engineer

Senior Staff Engineer no Nubank, a principal empresa de tecnologia do Brasil. Criador de uma teoria inovadora sobre Design de Código e educador com foco em performance e qualidade de software.

Rafael Ponte

Rafael Ponte

Software Engineer

Especialista em arquitetura de sistemas distribuídos e escalabilidade. Com vasta experiência em projetos de alta performance, domina os pilares da escalabilidade: Caching, Async Processing e Load Balancing.

Daniel Romero

Daniel Romero

IA Engineer

Engenheiro de IA especializado em Large Language Models (LLMs) e Retrieval-Augmented Generation (RAG). Construiu sistemas end-to-end que combinam LLMs, bancos vetoriais e busca semântica para resolver problemas reais em escala.