#175 - Belezas naturais de um código horrível
O caos funcionando
Hey! 👋
“ai não tem mais evento da Codecon esse ano”. Tem sim! E é nesse mês ainda. Se liga!
Eu sei que o ano tá chegando ao fim e pode dar aquela preguiça… mas tem muito tempo pra aprender e fazer ótimas conexões ainda em 2025. Bora!
Gabriel Nunes (@nunesgabriel)
Belezas naturais de um código horrível
Um sistema legado pode ser tão fascinante quanto caótico. Vamos a um bom exemplo disso: uma base de código ao mesmo tempo genial e desastrosa. O banco de dados era a espinha dorsal e também a origem de muitos dramas. A tabela Merchants ficou sem colunas e ganhou uma irmã improvisada, Merchants2, enquanto outra tabela, a minimalista SequenceKey, com apenas uma linha e uma coluna, era responsável por gerar IDs para praticamente tudo. Havia até uma tabela Calendário preenchida manualmente, cuja atualização garantia que o sistema continuasse funcionando.
Alguns processos eram tão peculiares quanto arriscados. A tabela de funcionários era apagada diariamente e reimportada de um CSV, e a replicação dependia literalmente de um e-mail e de um botão apertado por um funcionário. Existia ainda um banco de dados “de substituição”, extremamente normalizado, mas quase impraticável devido ao excesso de junções.
Do lado do código-fonte, o cenário era igualmente heterogêneo: metade VB, metade C#, misturado a todos os frameworks JavaScript possíveis. Serviços SOAP, aplicativos Windows e até programas esquecidos em discos rígidos compunham um ecossistema imprevisível. Muitos problemas surgiam de heranças deixadas por desenvolvedores antigos, incluindo arquiteturas curiosas, classes vazias e bugs que apareciam ciclicamente devido a decisões duvidosas de design.
Apesar da bagunça generalizada, havia momentos de brilho. Um desenvolvedor conseguiu reduzir o carregamento da página mais usada, a busca de comerciantes, de minutos para menos de um segundo, apenas quebrando tudo em pequenos endpoints independentes. Esse espírito de criar “ilhas de sanidade” em meio ao caos definiu a cultura do time: em vez de consertar o monólito, cada um criava novas partes, melhores e mais simples.
No fim, o legado deixado por esse sistema não era a bagunça em si, mas a liberdade criativa e a conexão direta entre problemas reais e soluções pragmáticas, algo raro em ambientes de desenvolvimento mais estruturados e rígidos.
Um recado do patrocinador 📣
O equilíbrio entre simplicidade e robustez
A solução certa, no momento certo.
Nem toda complexidade é ruim. Em muitos casos, ela é necessária para garantir estabilidade e escala. O problema surge quando antecipamos cenários que talvez nunca existam e construímos soluções robustas demais antes da hora. Complexidade sem evidência é um sinal claro de over engineering.
Por isso, o time de engenharia do Asaas valoriza soluções simples e eficientes, sem abrir mão da robustez quando ela realmente é necessária. Princípios como o YAGNI (You Aren’t Gonna Need It) e o incentivo a testar hipóteses de forma enxuta ajudam a manter esse equilíbrio diariamente.
Quer fazer parte de um time que equilibra simplicidade e inovação? Confira as oportunidades abertas no Asaas: https://go.codecon.dev/asaas-news
💥 Por que “atacar” sistemas é quase um serviço público?
Tem gente que relaxa fazendo tricô. Outras pessoas preferem… quebrar sistemas. E não é por maldade, é porque é divertido, como resolver um enigma ao contrário. A verdade é que só dá pra consertar um problema quando alguém mostra que ele existe, então descobrir falhas é meio que parte do pacote da segurança. Algumas são fáceis de corrigir, outras são tão irreparáveis quanto e-mail já enviado. E é por isso que, às vezes, a melhor decisão é expor logo a vulnerabilidade para evitar estragos maiores lá na frente.
⚙️ Sincronizar? Só se for a playlist
Sistemas distribuídos adoram uma boa escala, mas nada mata esse sonho mais rápido do que sincronização demais. Quando tudo precisa “esperar educadamente na fila”, o desempenho despenca, especialmente quando CPUs começam a brigar por um mesmo lock. Técnicas como eliminar bloqueios, usar particionamento inteligente, hashing consistente, filas de reserva e consistência eventual ajudam a driblar o caos e manter tudo fluindo. A lição? Evite transformar o banco de dados no “único portão de entrada”. Do contrário, ele vira gargalo, drama e boleto caro. Só sincronize quando realmente não houver escapatória.
🎬 Como a Netflix gerencia 238 milhões de assinaturas?
Manter milhões de contas funcionando parece caos, mas a plataforma dá um show de organização digna de maratona. Tudo começa com o cadastro e segue por upgrades, renovações automáticas e aquele clássico drama: pagamento recusado. Atrás das câmeras, vários microsserviços trabalham sem parar para entregar planos certos, qualidade certa e cobranças no ritmo certo, enquanto bancos de dados diferentes seguram a bronca de performance e histórico. O segredo? Uma arquitetura que escala, monitora tudo e ainda evita que o sistema entre em modo “episódio final com cliffhanger”.
🪄 Pequenas frescurinhas que deixam sites muito mais legais
Sabe aquelas microfuncionalidades que ninguém pediu, ninguém precisa… mas quando aparecem, você pensa: “uau, isso aqui tem capricho”? Pois é. De notas laterais que salvam a leitura, a sumários que impedem você de se perder no rolê, até barras de progresso que te lembram que sim, você está avançando (mesmo que lentamente). Também existem títulos clicáveis, diálogos fofos no meio do texto, blocos de código organizadinhos e até links com ícones estilosos. Nada disso é essencial, mas tudo isso deixa um blog com aquela energia “eu me importo com você, leitor”. E no fim, faz toda a diferença.
🎛️ Pixel art
Os flipdiscs são aqueles displays vintage que fazem “tec-tec” enquanto viram bolinhas pretas e brancas. Montar uma estrutura dessas é um caos delicioso: painéis raros, eletrônica old school, fios por todos os lados, um módulo Nvidia Orin Nano só para gerenciar a brincadeira, cenas processadas em WebGL e até um aplicativo dedicado para controlar tudo. No fim, vira arte, vira código, vira terapia manual. Cada clique é parte do charme.
💸 Quando um Ctrl+C/Ctrl+V errado vale meio bilhão
Era para ser só mais uma atualização de sistema, mas um único servidor com “números a mais” no comando e pronto: um robô de negociação decidiu virar comprador compulsivo da bolsa inteira. Enquanto a equipe fazia uma reunião tranquila, o bot gastava milhões por segundo como se fosse brincadeira. Resultado? Servidores destruídos a machadadas, bilhões evaporando e uma empresa inteira indo para o ralo por causa de um mísero detalhe que ninguém percebeu. Moral da história: nunca subestime o poder destrutivo de um typo.
Pesquisa [:mapa] 2025
Está no ar a Pesquisa [:mapa] 2025 um levantamento que mapeia o mercado de tecnologia no Brasil. Ela leva cerca de 10 minutos e, ao participar, você contribui para valorizar profissionais da área e a guiar marcas em estratégias mais conscientes no mercado de tecnologia. Seu ponto de vista como pessoa desenvolvedora importa muito. Ah, e você pode concorrer a uma mesa de altura regulável da GenioDesk + um M-Stand. Bora participar?
Escovando Bits Podcast
Será que usar IA no dia a dia tira o mérito do dev? A gente falou sobre IA, produtividade e o preconceito que ainda existe com quem usa ferramentas inteligentes no código.
🎧 Clica aqui pra ouvir!
Eventos
Temos 2 meetups marcados para esse mês de novembro:
📍 25 de novembro - online: Codecon Ladies #4
📍 26 de novembro - presencial: Floripa #13
Quer se tornar cientista de dados e conquistar vagas globais? Aproveite o desconto EXCLUSIVO para a comunidade Codecon: 20% OFF no MBA em Data Science & AI da TripleTen + Sirius com o cupom CODECON20 até 21/11. Saiba mais aqui! (patrocinado)
Liquid Layers - demonstração interativa de física de fluidos feita com WebAssembly/WebGL
mayneyao / eidos - uma estrutura extensível para a gestão de dados pessoais
darrenburns / posting - o cliente de API moderno que reside no seu terminal
p5js - ferramenta amigável para aprender a programar e criar arte
parece um vídeo divertido, mas eu não consigo parar de pensar pra onde elas tão indo







