#154 - 4 princípios de design de software que você só aprende errando (e consertando na produção)


Hey! 👋

VIRADA DE LOTE DATACON! 🚨

A Datacon é um evento para quem não só fala de dados, mas põe a mão na massa e faz acontecer. E temos mais um lote de ingressos acabando!

Até o dia 25 de junho, você pode garantir a sua vaga no lote atual de ingressos.

Vem aprender e trocar ideia com quem entende do assunto e vive os dados na prática.

DATACON

🗓️ 06 de setembro

📍 No STATE Innovation Center - São Paulo

👉 Inscreva-se agora em: codecon.dev/datacon

Gabriel Nunes (@nunesgabriel)

4 princípios de design de software que você só aprende errando (e consertando na produção)

Desenvolver software grande é tipo escola da vida: você aprende na prática, quebrando a cara. Aqui vão 4 lições de design que podem salvar seu projeto (ou pelo menos sua sanidade):

1. Uma verdade só, por favor. Ter o mesmo dado em dois lugares? Péssima ideia. Um vai ficar errado uma hora ou outra. Melhor calcular o valor quando precisar, em vez de guardar duas versões. Exemplo: saldo total e saldo disponível. Calcula o segundo com base no primeiro e pronto, menos dor de cabeça.

2. Repetir não é pecado. DRY (Don't Repeat Yourself) é legal, mas tentar abstrair demais o código vira um monstro impossível de manter. Às vezes copiar e colar é mais claro e resolve melhor. Um pouco de repetição consciente pode evitar muito caos lá na frente.

3. Mocks? Com moderação. Simular comportamento nos testes ajuda, mas confiar só nisso é cilada. O teste passa, mas a produção quebra porque o mock não era fiel. Sempre que der, use testes mais reais. Eles demoram mais, mas evitam sustos quando o sistema estiver rodando pra valer.

4. Menos estado mutável, mais tranquilidade. Quanto menos coisa você tiver que atualizar o tempo todo, mais simples sua vida. Em vez de guardar tudo, calcule o que dá pra calcular. Hoje em dia os computadores são rápidos o bastante pra isso. Na fase inicial de um projeto, isso é ouro: menos bugs, mais agilidade.

Essas dicas não são regras gravadas na pedra, mas são aquelas verdades que a gente aprende na base do “nunca mais faço isso assim”. Vale guardar no coração dev.

Um recado do patrocinador 📣

“Trabalhar na área de tecnologia aqui no Asaas tem sido uma experiência maravilhosa. Estou na empresa há quase quatro anos e, até hoje, me sinto motivada e desafiada todos os dias.

Minha liderança é acolhedora e participativa, o que me incentiva a crescer como profissional e a buscar constantemente novos conhecimentos e soluções para o meu dia a dia. Além disso, temos uma cultura muito forte de code reviews — todos os desenvolvedores participam ativamente da revisão de código, sempre contribuindo com sugestões valiosas e promovendo trocas ricas de aprendizado.

Sinto que minhas ideias são valorizadas e tenho espaço para contribuir de forma significativa com o time. Isso me faz sentir realizada profissionalmente e feliz com o meu trabalho.”

Sarah Tavares, Desenvolvedora Full Stack Pleno no Asaas.

Se você curte trabalhar com propósito, em um ambiente de confiança e parceria, talvez o seu lugar seja no Asaas! Conheça as vagas abertas.

🧑‍💻 herança

Se herança é tão ruim, por que ainda usamos tanto? A resposta está na história: ela surgiu primeiro, lá nos anos 60 com a linguagem SIMULA, feita pra simular processos industriais. O problema é que o conceito mistura três coisas diferentes (especialização, substituição e reaproveitamento de código), o que gera confusão. Hoje temos alternativas mais organizadas como módulos e ADTs, mas a herança ficou tão enraizada que é difícil largar. E sim, dá pra fazer melhor, mas até hoje a herança carrega suas limitações.

🤖 aprendizado de máquina

O Transformers.js é uma biblioteca que te permite rodar modelos poderosos da Hugging Face direto no navegador, sem servidor, sem complicação! Ele funciona quase igual à versão Python e suporta tarefas de texto, imagem, áudio e até modelos multimodais. Dá pra traduzir, resumir, classificar sentimentos e muito mais, tudo com JavaScript. Quer performance? Tem suporte a WebGPU e quantização. É só instalar via NPM ou CDN, chamar a pipeline e pronto! Um jeito fácil, leve e moderno de usar IA direto do seu navegador.

😵‍💫 centralizar com CSS

Centralizar coisas com CSS deveria ser fácil. Temos flex, grid, justify-content, align-items... tá tudo aí. Mas na prática? Nem Apple, Google, GitHub ou Slack conseguem centralizar texto e ícones direito. Fontes, altura da linha e alinhamento vertical são os vilões, e cada navegador ou componente parece ter sua própria ideia de centro. Alinhar ícones então? Um pesadelo. No fim, centralizar é simples na teoria, mas cruel na prática. E talvez seja por isso que tanta gente ama a web: sempre tem um bug te esperando com um sorriso torto.

😫 saúde mental

A saúde mental ainda é um assunto pouco falado na área de tecnologia, mas deveria ser levado mais a sério. Pressão por resultados, prazos malucos e a falsa ideia de que tudo é urgente levam muitos profissionais ao burnout. É fácil perder o equilíbrio quando se tenta controlar o incontrolável. A verdade é que nem todo prazo vale sua paz. Aprender a dizer "não", buscar ajuda quando necessário e lembrar que você vem antes do código faz toda a diferença. No fim das contas, o maior ativo da empresa é você, saudável e inteiro.

🚀 produtividade

Formatar código é uma daquelas tretas que todo dev já viveu: cada um tem um gosto e ninguém explica direito o porquê. Mas e se a gente deixasse o computador decidir isso por nós? É aí que entram os formatadores de código, ferramentas que pegam seu código, arrumam tudo num estilo definido e pronto! E o melhor: escrever um formatador nem é esse bicho de sete cabeças. Dá pra fazer usando árvores de nós, regras simples e uma pitada de lógica. Parece complexo, mas com os exemplos certos, até que é divertido!

💡 CSS no modo turbo

Uma galera resolveu mostrar como construir o Campfire só com CSS puro, sem build, sem Sass, sem Bootstrap, só na raça e com tudo que há de mais moderno: :has(), oklch(), :where(), e por aí vai. Eles abusaram das variáveis CSS pra criar padrões flexíveis, usaram espaços de cores avançados pra deixar tudo mais bonito e legível, e até tiraram lógica do backend usando só CSS. O resultado? Um código mais limpo, poderoso e com aquele gostinho de "como ninguém pensou nisso antes?".

Tem alguma pergunta? Só responder o e-mail!

R. Dr. João Colin, 1285, Joinville, SC 89204-001
Desinscrever-se · Preferências

code(weekly)

Junte-se à 7.500+ devs e receba e-mails semanais com a melhor curadoria de artigos, repositórios e outros links interessantes da área tech.

Read more from code(weekly)

Hey! 👋 A Codecon Summit foi animal! Quem foi sabe. E a gente ainda tem muito evento incrível neste ano. Fica ligado! 👉 Datacon - 06 de setembro 👉 Select Experience - 01 de novembro Conhecimento, troca de experiências com quem faz na prática e networking de altíssimo nível. Vem fazer parte da comunidade CODECON! Até mais,Gabriel Nunes (@nunesgabriel) "Programar é entender que você vai errar… e que isso faz parte do processo." – Kent Beck Kent Beck é um dos criadores do Extreme Programming (XP)...

Hey! 👋 Já conhece o canal da Codecon no Youtube? A gente tá publicando muito conteúdo legal por lá. São quase 300 vídeos e mais de 27 mil inscritos. Vem participar da Comunidade Codecon por mais esse canal! Gabriel Nunes (@nunesgabriel) “Good architecture allows for change with minimum pain.”— Martin Fowler Fowler lembra que arquitetura não é sobre prever tudo. É sobre deixar a casa arrumada o suficiente pra mexer nas paredes sem derrubar o teto. Cada if hardcoded no lugar errado é um...

Hey! 👋 Ei, atrasadinho. A Codecon Summit tá chegando! Falta pouquíssimo tempo, mas ainda dá tempo de garantir seu ingresso. Todo mundo da comunidade dev vai estar lá. É nos dias 18 e 19 de julho. 👉 Acesse o site, confira a programação e garanta o seu lugar! Gabriel Nunes (@nunesgabriel) Por que os Devs não estão entregando mais rápido? Uma pesquisa com 100 desenvolvedores revelou os principais motivos que impedem entregas de código mais rápidas. A maioria apontou a complexidade da base de...