Estruturas condicionais são sem duvida um dos assuntos mais importantes no âmbito computacional, indiferentemente do nível ou paradigma empregado. Apesar de possuir uma grande responsabilidade no desenvolvimento de aplicações, a utilização de profusas estruturas condicionais pode comprometer a legibilidade do código e aumentar a carga cognitiva do desenvolvedor responsável.
O que é Guard Clause? 🤔
Guard clause ou Early return são termos utilizados ao arquitetarmos uma estrutura sequencial de código condicional, normalmente reconhecido como pré condição.
Comumente podemos construir Guard clauses respeitando 3 padrões:
Processa os parâmetros e retorna caso algum deles não respeite nossa regra de negócio;
Verifica o estado de um objeto e retorna um valor, sujeitado-se ao estado passado;
Elimina casos triviais.
Como desenvolver um Guard Clause? 🧑🏻💻
Imagine um cenário em que estamos construindo uma batalha medieval e nosso guerreiro precisar lutar, porem para lutar nosso guerreiro precisa de determinados requisitos.
const getWarriorStatus = ({status}) => {
let responseWarrior;
if (status.stamina < 10){
responseWarrior = isExhausted();
}
else {
if (!status.equipped){
responseWarrior = equip();
}
else {
if (!status.blessed){
responseWarrior = toBless();
}
else{
responseWarrior = battle();
}
}
}
return responseWarrior;
}
Olhando o código assim podemos concluir que o mesmo não se torna escalável caso o guerreiro comece a conquistar novo atributos.
const getWarriorStatus = ({status}) => {
if (status.stamina < 10){
return isExhausted();
}
if (!status.equipped){
return equip();
}
if (!status.blessed){
return toBless();
}
return battle();
}
Aplicando os conceitos de Guard Clause conseguimos transformar o código outrora obsoleto em um produto agradável e escalável.
Obrigado por me deixar fazer parte do seu tempo! 🥰
Referências:
Top comments (0)