✨Código Limpo na Prática: Dicas e Exemplos em Python 🐍
E aí, galera do código! 👨💻👩💻
Já se sentiram como arqueólogos 🧜 ao tentar entender um código alheio (ou até o seu próprio, escrito há algumas semanas)? Aquele código com nomes de variáveis que parecem hieróglifos 🖭, funções que mais parecem caixas-pretas 🛠️ e comentários que, em vez de ajudar, só confundem mais? Se a resposta for sim, respirem fundo! 🫠 Hoje, vamos desmistificar o Capítulo 2 do livro "Código Limpo" e dar um upgrade no nosso código!
Bora começar com os nomes... 📕
Já pararam pra pensar no poder de um bom nome? Um nome bem escolhido é como uma bússola, que te guia pelo código e te impede de se perder no labirinto da lógica. Mas como escolher nomes que realmente façam sentido?
✅ Seja descritivo!
O nome deve revelar o propósito da variável, função ou classe. Esqueça abreviações misteriosas e códigos secretos!
❌ Exemplo ruim:
x = 30 # O que é 'x'???
✅ Exemplo bom:
idade_usuario = 30 # Agora faz sentido!
⛔ Evite informações erradas!
O nome não pode induzir o leitor a interpretações equivocadas.
❌ Exemplo ruim:
def calcular_desconto(preco_com_juros): return preco_com_juros * 0.9 # Mas isso é um desconto ou um aumento?
✅ Exemplo bom:
def aplicar_desconto(preco_original): return preco_original * 0.9 # Nome claro e direto!
🌟 Faça distinções significativas!
Use nomes que diferenciem claramente os elementos do seu código.
❌ Exemplo ruim:
valor1 = 100 valor2 = 200 resultado = valor1 + valor2 # Valor do quê???
✅ Exemplo bom:
salario_base = 100 bonus = 200 salario_total = salario_base + bonus # Agora ficou claro!
E as funções, como ficam nessa história? 🧩
Funções são como peças de Lego: quanto menores e mais bem definidas, mais fácil será montar estruturas complexas. Mas como criar funções que sejam realmente fáceis de entender e reutilizar?
🛠 Seja pequeno!
Funções curtas são mais fáceis de entender e testar.
❌ Exemplo ruim:
def processar_pedido(cliente, pedido, estoque): if estoque[pedido] > 0: estoque[pedido] -= 1 print(f"Pedido {pedido} de {cliente} processado!") else: print("Estoque insuficiente!")
✅ Exemplo bom:
def verificar_estoque(pedido, estoque): return estoque[pedido] > 0
def atualizar_estoque(pedido, estoque): estoque[pedido] -= 1
def processar_pedido(cliente, pedido, estoque): if verificar_estoque(pedido, estoque): atualizar_estoque(pedido, estoque) print(f"Pedido {pedido} de {cliente} processado!") else: print("Estoque insuficiente!")
⭐ Faça uma coisa só!
Cada função deve ter um único propósito.
❌ Exemplo ruim:
def calcular_salario_e_imprimir(nome, salario, bonus): salario_total = salario + bonus print(f"{nome} tem um salário total de {salario_total}")
✅ Exemplo bom:
def calcular_salario(salario, bonus): return salario + bonus
def exibir_salario(nome, salario_total): print(f"{nome} tem um salário total de {salario_total}")
Comentários: amigos ou inimigos? 🤔
Comentários são como temperos: usados com moderação, realçam o sabor do prato; em excesso, estragam tudo. Mas quando usar comentários de forma eficiente?
✅ Explique o porquê, não o quê!
O código já diz o que está sendo feito; o comentário deve explicar a razão por trás da decisão.
❌ Exemplo ruim:
# Soma a bonificação ao salário salario_total = salario + bonus
✅ Exemplo bom:
# A bonificação é adicionada ao salário para calcular o total recebido pelo funcionário salario_total = salario + bonus
"Ah, Tio Bob, mas eu não tenho tempo para refatorar! ⏳ O prazo está estourando!" 😱
Eu sei, a vida de dev é corrida. Mas acredite: investir tempo em código limpo agora vai te poupar tempo (e dor de cabeça) no futuro. 🚀
Pensa comigo: quando você encontra um código limpo, com nomes que fazem sentido, funções bem definidas e comentários que realmente ajudam, você não se sente mais motivado e produtivo?
Então, que tal começarmos essa jornada juntos? Vamos aplicar esses princípios no nosso dia a dia e transformar nossos códigos em obras de arte. 🎨
Afinal, como diria um grande filósofo do código: "Código limpo é código feliz!" 😄