Oi, Luísa! Que bom ver você refletindo sobre esses pontos. Essa é uma das discussões mais ricas no dia a dia do desenvolvimento.
Não existe uma regra matemática, mas no mercado seguimos alguns princípios que ajudam a decidir quando "quebrar" ou "unir" o código.
A Regra do propósito único
Uma boa diretriz é observar se uma única linha está tentando realizar tarefas de naturezas diferentes. No seu exemplo, tínhamos:
- Captura de dado (
input). - Tratamento de texto (
strip e replace). - Conversão de tipo (
float).
Quando combinamos tudo isso, o erro em uma parte (como o parêntese extra que notamos) fica mais difícil de localizar. Além disso, se o usuário digitar uma letra em vez de um número, o programa trava e fica difícil tratar esse erro de forma específica.
O Equilíbrio entre brevidade e clareza
Para encontrar esse equilíbrio, você pode considerar estes três pilares:
- Legibilidade cognitiva: Se você precisa ler a linha mais de duas vezes para entender o que ela faz, ela está complexa demais. O código é escrito para seres humanos lerem e máquinas executarem.
- Testabilidade: Ao isolar os comandos, você consegue verificar se a limpeza do texto funcionou antes de tentar converter para número. Isso evita que o sistema apresente falhas inesperadas.
- Manutenção: Imagine que daqui a seis meses o requisito mude e você precise validar se o valor é positivo. Em um código muito encadeado, inserir essa nova regra vira uma "gambiarra". Em um código organizado em etapas, você apenas adiciona um passo lógico.
Quando o encadeamento prejudica?
O limite geralmente é atingido quando o encadeamento esconde a intenção do código. No mercado, evitamos o chamado "Código Espaguete" ou "Linhas Gigantes".
Uma estrutura que equilibra bem esses pontos seria algo assim:
# Tratamento inicial dos dados
entrada_usuario = input("Quanto em R$ você quer converter? ").strip().replace(",", ".")
# Conversão com foco em segurança
try:
valor_reais = float(entrada_usuario)
conversao = valor_reais / taxa_cambio
# ... restante do código
except ValueError:
print("Por favor, digite um número válido.")
Note que aqui unimos o strip e o replace porque ambos são tratamentos de string (mesma natureza), mas separamos a conversão para float dentro de um bloco que cuida da segurança do sistema.
Dica de ouro: Priorize sempre quem vai ler seu código depois. Na dúvida, escolha a clareza. Um código com cinco linhas compreensíveis é muito melhor do que um código de uma linha que ninguém consegue explicar como funciona.
Espero que essa perspectiva ajude nos seus próximos desafios!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!