The Guard Statement: Guard clause ou Early return.
Miguel
Posted on January 18, 2021
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:
Posted on January 18, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.