#135 - As 3 principais lições do livro Philosophy of Software Design


Hey! 👋

Já conhece o blog da Codecon?

A gente tá publicando uns artigos muito massas por lá! O último foi o “Como se tornar um Engenheiro de Software mais efetivo” com a participação super especial do Elton Minetto.

Tamo sempre postando conteúdo novo. Acompanha a gente!

Até mais,
Gabriel Nunes (@nunesgabriel)

As 3 principais lições do livro Philosophy of Software Design

Sabe aquela bagunça no código que começa pequena e, de repente, parece um emaranhado de fios soltos? O livro A Philosophy of Software Design, de John Ousterhout, traz 3 dicas pra evitar essa cilada:

1. Tolerância zero à complexidade

Complexidade no código é tipo mofo: começa de leve, você ignora, e quando vê, tomou conta de tudo. O autor explica que isso acontece quando pequenas mudanças alteram configurações gigantes, o código vira um labirinto e você nem sabe mais onde alterar.

Exemplo prático: imagine um sistema de pedidos onde a lógica de desconto está espalhada por vários lugares. Se precisar mudar algo, tem que caçar tudo! Uma solução? Centralizar a lógica em um único lugar para evitar esse caos.

Moral da história: não caia na armadilha do “só essa duplicaçãozinha aqui não vai fazer mal”. Ela se acumula e, quando percebe, seu código parece um filme de terror.

2. Código pequeno ≠ código melhor

Muita gente acha que dividir tudo em métodos mínimos deixa o código mais organizado. Mas essas funções sempre foram usadas juntas, separá-las só complicará a vida.

Exemplo prático: no processo de cadastro de usuário, tem métodos separados para validar, salvar no banco e mandar e-mail. Mas eles sempre andam juntos! Uma solução? Juntar tudo num único método, tornando o código mais complexo e intuitivo.

Moral da história: separar só por separar pode ser pior. O que importa é a simplicidade, e não o tamanho da função.

3. Tratamento de exceções: o vilão da complexidade

Lidar com falhas no código é essencial, mas, se feito da forma errada, pode se tornar um verdadeiro caos. O autor aponta que a maneira como os erros são tratados podem acabar gerando mais confusão do que soluções.

O dilema: você deve resolver o problema imediatamente ou simplesmente repassá-lo para quem chamou o método? A segunda alternativa pode desencadear um efeito cascata, tornando o sistema ainda mais complexo.

Moral da história: gerenciar erros com cautela evita que o código fique repleto de dúvidas do tipo “E agora? O que faço com isso?”.

Conclusão

Esse livro é um tapa na cara de quem acha que “qualquer código que funciona tá bom”. Simplicidade e organização são essenciais para um código saudável.

Um recado do patrocinador 📣

Sabia que por trás de uma conta digital completa, que já transformou a gestão financeira de mais de 180 mil negócios, o Asaas conta com uma área de tecnologia com mais de 200 profissionais? Desses, mais de 110 fazem parte dos times de Engenharia de Software, que possuem uma cultura de trabalho única e pautada em princípios para manter a régua de qualidade do produto:

  • Foco na solução: O time não segue requisitos cegamente ou de maneira automática,mas mergulha nos desafios para entender o problema e ajudar a desenvolver soluções duradouras.
  • Manter simples: É mais um dos princípios seguidos, pois acreditam que soluções simples e de fácil manutenção permitem que a área se mova rapidamente.

Esses valores se sustentam por uma forte cultura de colaboração, onde ideias são compartilhadas, feedbacks são trocados e aprendizados acontecem todos os dias!

Se você se identifica com a forma que o Asaas faz software e também quer voar alto, confira a oportunidade que melhor se encaixa com você.

🌐 web

Já ouviu falar do omg.lol? Basicamente, é um playground digital cheio de ferramentas legais: páginas personalizadas, redirecionamento de links, um mini-blog, pastebin, hospedagem de imagens, integração com Mastodon e até um sistema de status sem likes ou seguidores. Tudo com um ar nostálgico da “velha internet” e uma comunidade incrível.

♟️ xadrez

Quem aí assistiu O Gambito da Rainha e quis virar um gênio do xadrez? Muita gente pode ter pensado nisso, mas quando percebe que não é fácil acaba desistindo. Porém, teve alguém que ficou tão frustrado quando percebeu que não era um mestre enxadrista, que resolveu criar um método pra se tornar bom na coisa. Com uma rotina de treinos de 20 a 30 minutos por dia durante nove meses, essa pessoa passou dos piores 5% para encostar nos 5% melhores do Chess.com. Será que você também consegue?

♾️ DevOps

Ao longo dos anos, a busca pela automação no DevOps levou muitas empresas a cortarem suas equipes de QA, acreditando que isso tornaria o processo mais ágil. No entanto, os desenvolvedores não assumiram essa responsabilidade, e a qualidade do software sofreu. Sem rastreamento adequado de bugs, triagem eficiente e testes completos, os problemas se acumularam. No fim, a decisão de remover o QA não trouxe mais velocidade – apenas mais falhas e frustração para as equipes.

🔻 Ruby

Ruby pode até ter saído dos holofotes, mas para quem usa, é paixão pura! A linguagem não só facilita a vida do programador, como também traz um prazer genuíno ao escrever código. Sua expressividade permite que o código pareça quase uma linguagem natural, tornando comentários muitas vezes desnecessários. Além disso, a comunidade Ruby é um show à parte: acolhedora, colaborativa e cheia de gente apaixonada. No fim das contas, Ruby não é apenas uma linguagem, é um lar para quem gosta de programar com felicidade.

🔎 rastreamento

Já quis entender melhor o que está rolando no seu programa? Então você vai curtir esse catálogo com várias ferramentas de rastreamento para monitorar e visualizar dados como um verdadeiro ninja do debug! Tem de tudo um pouco: desde clássicos como eBPF e QEMU até ferramentas novinhas. O segredo do rastreamento é coletar dados com timestamps e jogá-los em uma interface de linha do tempo – bem mais visual e intuitivo do que um monte de texto perdido em logs.

🗄️ banco de dados

Você já selecionou um banco de dados para um projeto sem realmente entender as diferenças entre eles? Se sim, pode estar na hora de voltar para os fundamentos. Veja esse resumo dos livros Database Internals, de Alex Petrov e Designing Data-Intensive Applications, de Martin Kleppmann, e aprenda o essencial para fazer a escolha certa.

No episódio da semana discutimos o motivo pelo qual as pessoas odeiam o SCRUM e também o que poderia ser feito pra melhorar (ou não).

Escute no Spotify, ou no seu agregador preferido.

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! 👋 Já faz duas semanas que envio a newsletter na quinta-feira. Nas quartas agora ficou meio corrido pra mim. Portanto, decidi mudar o dia "oficial" da news. A partir da semana que vem vamos enviar a newsletter semanal nas terças-feiras, ok? :) Até mais,Gabriel Nunes (@nunesgabriel) 13 conselhos para devs iniciantes Nem tudo é verdade absoluta: bons escritores não são necessariamente bons programadores. Então, leia tudo com um pé atrás e reflita antes de seguir qualquer conselho cegamente....

Hey! 👋 ✨ Codecon Universe Um hackathon de ideias inúteis e coisas que ninguém precisa.17 e 18 de maioÁgora Tech Park - Joinville INSCRIÇÕES ABERTAS! ✨ Codecon Summit Um evento ainda melhor e muito mais frio. Leva um casaquinho!18 e 19 de julhoViasoft Experience - Curitiba INSCRIÇÕES ABERTAS! ✨ Datacon Um evento sobre dados e machine learning. Se parecer confuso, é machine learning. Se fizer sentido, é só um gráfico de pizza.6 de setembroFIAP (unidade Lins de Vasconcelos) - São Paulo ✨ Select...

Hey! 👋 Estamos rodando uma pesquisa da Codecon pra entender melhor onde podemos direcionar nossos esforços de criação de conteúdo ou de temas nos eventos que organizamos. Pode tirar um tempinho pra responder? Na semana que vem faremos o sorteio de um kit da DVLPR para uma das pessoas que responder! Até mais,Gabriel Nunes (@nunesgabriel) O que vem depois do Open source? Bruce Perens, um dos pais do movimento Open Source, acha que está na hora de evoluir. Ele tá criando o "Pós-Open Source",...