Como organizar código: a tríade perfeita
Três princípios que parecem simples, mas que levam tempo para equilibrar na prática:
- YAGNI — You Ain’t Gonna Need This
- KISS — Keep It Simple, Stupid
- DRY — Don’t Repeat Yourself
KISS: Keep It Simple
A mensagem é direta: mantenha simples. Se tá funcionando, deixa. Se tá entregando o que precisa, deixa. Se foi feito da maneira mais simples possível, provavelmente é isso mesmo.
Vale a pena resistir à tentação de adicionar complexidade onde ela não foi pedida. É muito fácil começar a escrever código pensando “alguém um dia pode precisar disso no futuro” — mas na maioria das vezes esse dia nunca chega.
YAGNI: You Ain’t Gonna Need This
Com o KISS em mente, vale pensar duas vezes antes de componentizar ou compartilhar regra de negócio sem uma necessidade clara para isso.
- Criar uma função para algo que você vai usar apenas uma vez pode ser prematuro
- O mesmo vale para interfaces e classes criadas “por precaução”
Se não precisa agora, provavelmente não vale criar ainda.
DRY: Don’t Repeat Yourself
Antagonista do YAGNI — e foi por isso que falei dele primeiro. Se você já tem uma função que faz algo e precisa fazer a mesma coisa em outro lugar, reutilize. Mas apenas se você tiver confiança de que essa função não vai mudar no futuro.
E se mudar? A tentação vai ser essa aqui:
“Dá pra fazer uma lógica onde esse componente vira um middleware que recebe parâmetros e retorna uma Higher Order Function…”
Geralmente vale resistir a esse caminho. O KISS agradece.
A luta interna
Sua carreira enquanto júnior e início de pleno vai ser uma constante luta entre esses três princípios. Para achar o equilíbrio, ler código de outras pessoas ajuda muito — e participar de discussões sobre o assunto também, quando der.
Seu cérebro vai encontrar padrões e vai começar a aplicar esses princípios de forma natural. Se alguém ao seu redor ainda não conhece essa tríade, faz sentido — não é um assunto tão discutido assim. Cada um chega no seu tempo.
Dicas extras
Um código bem escrito é um código fácil de ler, fácil de entender e fácil de manter.
- Fácil de ler para quem não conhece a codebase
- Fácil de manter para quem conhece
E uma coisa que ajuda muito a longo prazo: manter o código consistente com o restante da codebase. Quando todo mundo segue uma linha parecida, fica muito mais fácil de qualquer pessoa entrar e entender o que foi feito.