#174 - O Frankenstein dos tipos primitivos ataca novamente!
Strings não curam todos os males do software.
Hey! 👋
Código bom é tipo vinho, ou tipo o Brad Pitt, fica melhor com a passagem do tempo.
Como anda a qualidade do seu código? Neste episódio do escovando bits conversamos com o Bruno Rocha sobre código sustentável e que envelhece bem.
Gabriel Nunes (@nunesgabriel)
O Frankenstein dos tipos primitivos ataca novamente!
A tal da Obsessão Primitiva é aquele momento em que o dev, movido pela preguiça ancestral de criar algo novo, decide resolver tudo com string, int e bool. Afinal, pra que inventar uma classe EmailAddress se dá pra enfiar tudo numa string e torcer pra funcionar, né? O problema é que esse hábito inocente é um “code smell” clássico, aquele aroma digital que avisa: tem treta no código!
Usar tipos primitivos pra representar conceitos complexos é tipo tentar consertar tudo com um martelo: funciona... até parar de funcionar. A bagunça começa quando você confunde parâmetros, repete validações em todos os cantos e cria bugs dignos de novela mexicana. O código vira um caos sem “fonte única da verdade”, e cada ajuste é um déjà vu doloroso.
A solução? Criar Objetos de Valor, tipos que encapsulam comportamento, validam regras e dão um banho de organização no seu sistema. Em vez de usar uma string genérica pra e-mail, você cria um EmailAddress que já garante que o valor é válido (sem precisar de 50 if espalhados).
No fim, a moral da história é simples: pare de usar fita adesiva pra segurar o código. Dê nomes, crie tipos, organize suas ideias. Seu futuro “eu” (e seu time) vão te agradecer por não transformar o projeto num Frankenstein digital.
Um recado do patrocinador 📣
“Estou há 4 anos no Asaas. Trabalhar aqui se tornou um sonho desde o momento em que conheci a empresa, e, quando entrei, tive um grande choque de cultura, para o lado positivo. Hoje, poder contar com uma liderança que me incentiva a crescer, apoia meus momentos de lazer e ainda me dá a possibilidade de trabalhar de onde eu estiver torna o trabalho muito mais leve.”
Bruno Miguel Morais - Desenvolvedor Fullstack Sênior
Se você curtiu o depoimento do Bruno e se identificou com essa forma de trabalhar, explore as vagas abertas no Asaas: https://go.codecon.dev/asaas-news-depoimentos
💸 Missão: cortar custos (sem cortar performance)
O desafio era ousado: reduzir em mais de 60% o custo de um pipeline no Google Cloud Dataflow e… deu certo! Tudo começou analisando o uso de CPU e memória: CPU ok, mas a memória? Metade ociosa. Trocaram o tipo de máquina, ajustaram o equilíbrio entre CPU e RAM, e boom, já economizaram 10%. Depois veio a cereja do bolo: migrar para VMs mais baratas, trocar HDD por SSD (sim, o mais caro saiu mais barato no fim) e desligar o Shuffle Service. Resultado? Pipeline turbinado, custo despencando e uma economia anual de quase US$ 80 mil. Quem disse que Big Data precisa ser big na conta também?
🛡️ Quando o código ganha um guarda-costas digital
Procurar falhas de segurança em código pode ser tão divertido quanto achar um bug às três da manhã, ou seja, nada divertido. A solução encontrada? Criar um “Copiloto de Segurança” movido por IA, capaz de farejar vulnerabilidades antes que elas virem manchete. O experimento colocou modelos de linguagem como GPT-4 e Gemini para competir na detecção de falhas e custo-benefício. O resultado foi promissor: a IA mostrou que dá pra manter o código seguro sem quebrar o caixa. Próximo passo: automatizar de vez a revisão e dar um descanso aos devs.
🤖 IA: devagarinho até te deixar de boca aberta
O avanço da IA não é uma linha reta, e sim uma escadinha cheia de “limiares”, momentos em que algo deixa de ser ruim e vira revolucionário. Câmeras digitais, vídeos gerados por IA e até modelos como o GPT-4 e Claude 3.5 seguem esse padrão: erram, melhoram e, de repente, passam a fazer coisas que pareciam impossíveis. Moral da história? Nunca subestime o “quase lá” da tecnologia.
💻 “Só um projetinho de fim de semana” (três anos depois…)
O cara só queria fazer um app simples de anotações. Markdown, senha, paz. Mas aí vieram as lojas da Apple e da Microsoft, certificados, ANSSI, bugs e o inevitável: o projeto tomou vida própria. De editorzinho básico virou uma criatura que executa código, cria gráficos e até implanta apps online. Entre clusters, Docker e noites sem dormir, ele descobriu que “pequeno projeto pessoal” é um eufemismo para “nova profissão”. Três anos depois, ele ainda tá rindo, meio nervoso, mas rindo.
💾 Apps offline
A ideia é simples (mas genial): e se os apps funcionassem mesmo sem internet? É o conceito de software “local-first”, seus dados ficam no seu dispositivo, e a nuvem só entra de vez em quando, tipo aquele amigo que aparece pra ajudar na mudança. A graça é devolver o controle pro usuário, mas tem o drama da sincronização: se o servidor morre, já era. A solução? Usar serviços como Dropbox, Google Drive e cia. Limitados, sim. Mas funcionam, são universais e, o mais importante, sobrevivem às empresas.
🐞 O drama do bug: uma saga dev
Debuggar é basicamente terapia pra código: você faz perguntas, analisa traumas e tenta entender por que ele se comporta daquele jeito. A missão? Achar o bendito bug antes que ele vá parar no ambiente de produção. Depurar não é só colocar console.log pra todo lado, e sim usar ferramentas como Chrome DevTools e VS Code pra investigar como um verdadeiro detetive digital. No fim, escrever testes é tipo prever o futuro: evita dores de cabeça e mantém sua sanidade (quase) intacta.
Escovando Bits Podcast
Desenvolvimento sustentável: Como escrever código que envelhece bem ft. Bruno Rocha
Como anda a qualidade do seu código? Neste episódio conversamos com o Bruno Rocha sobre código sustentável e que envelhece bem.
🎧 Clica aqui pra ouvir!
Youtube
Nossa parceria com a TripleTen te dá um benefício duplo: uma consultoria de carreira gratuita para planejar seu futuro e 10% OFF nos bootcamps com o cupom CODECON10 (patrocinado)
dotenvx / dotenvx - desbloqueie o dotenv para qualquer linguagem, framework ou plataforma!
glasskube / glasskube - o gerenciador de pacotes de última geração para Kubernetes
nate-parrott / ball - é uma bola e você pode arrastá-la e ela vai quicar pela tela
a mãe cumprimenta o filho todos dias quando ele volta da creche, até que ele… responde







