Um dos desafios enfrentados por programadores e desenvolvedores é escrever códigos menores e mesmo assim funcionais. Muitas vezes,abusamos do uso de if
, o que deixa nosso código confuso. Vejamos algumas soluções para essa questão.
Utilize expressões ternárias: Expressões ternárias são uma maneira concisa de escrever condições simples em uma única linha. Em vez de escrever um if/else, você pode usar a sintaxe condição ? valor1 : valor2.
Refatore o código:Refatore o código em funções separadas para torná-lo mais claro e organizado. Isso também torna mais fácil reutilizar o código e evita a duplicação de código.
Utilize arrays e objetos:Se você tiver muitos if's comparando valores, considere armazená-los em um array ou objeto. Em seguida, você pode usar a função Array.includes() ou objeto[propriedade] para verificar se o valor está presente.
Use operadores de comparação: Em vez de escrever vários if's para verificar se um valor está dentro de uma faixa específica, use operadores de comparação, como && (E) e || (OU), para combinar várias condições em uma única linha.
Utilize switch statement: Se você tiver muitos if's com múltiplos casos, considere usar um switch statement em vez de if/else. Isso pode tornar o código mais claro e mais fácil de ler.
*O uso de Strategy: *
Uma outra opção além das citadas acima, é o Strategy. O padrão Strategy reorganiza ordenadamente algoritmos alternativos (ou estratégias) para uma tarefa específica. Por meio dele podemos resolver códigos sem utilizar a estrutura condicional de uma maneira confusa.
Veja por exemplo o caso dessa calculadora que soma, multiplica e faz outras ações:
function calculate (number, operation){
if(operation == 'multiply for two'){
console.log(`result: ${number * 2}`)
}else if(operation == 'divide by two'){
console.log(`result: ${number / 2}`)
}else if(operation == 'add two'){
console.log(`result: ${number + 2}`)
}else if(operation == 'subtract two'){
console.log(`result: ${number - 2}`)
}
}
calculate(5, 'multiply for two')
//Resultado:
//result: 10
Percebe que embora correto e funcional, o código utiliza muito da estrutura condicional if? Será que isso pode ser resolvido? Observe:
const account = {
'multiply for two': number => console.log(`result: ${number * 2}`),
'divide by two': number => console.log(`result: ${number / 2}`),
'add two': number => console.log(`result: ${number + 2}`),
'subtract two': number => console.log(`result: ${number - 2}`)
}
function calculate(number, operation){
return account[operation](number)
}
calculate(5, 'divide by two')
//Resultado:
//result: 2.5
Qual a diferença? Foi se criado uma const que armazenava um parâmetro que iria executar quando chamado, um console.log com o parâmetro criado number
, mais a ação da equação.
Feito isso, basta chamar a função calculate
novamente com seus parâmetros: return account[operation](number)
e finaliza chamando a função e escrevendo o desejado.
O código ficou muito menor e organizado de maneira fácil para entendimento.
Lembre-se de que a simplicidade e a clareza são as chaves para escrever códigos eficientes. E nesse artigo conseguimos ver, como você pode reduzir significativamente a quantidade de if's em seu código JavaScript e torná-lo mais fácil de manter e entender.
Top comments (0)