Oi, gente!!!
deixa eu te perguntar uma coisa: você já sentiu a dor de ver um código como esse abaixo?
if (email && email.includes('@')) {
if(password && password.trim() !== '') {
// DO SOMETHING
}
}
É só um exemplo, mas imagine 4 a 7 ifs aninhados.
Criar pedaços de código assim é uma prática realmente comum pra quem tá iniciando como dev e é até saudável que façam isso porque, na minha opinião, um programador precisa sentir a dor de escrever um código sujo pra entender o valor do Clean Code.
Ifs aninhados podem realmente ser uma dor de cabeça se crescerem muito mas a gente consegue limpar usando algo chamado Guards (Guardas).
Guards?
Esse é um conceito bem simples de entender: eles basicamente verificam se existe algo errado, exemplo: validações, e então param a execução da sua função.
function usandoGuards(email, password) {
if(!email || !email.includes('@')) {
console.log('Email não é válido');
return; // Aqui é onde a mágica acontece
}
if(password && password.trim() !== '') {
// Faz alguma coisa
}
}
Como você pode ver no código acima, o primeiro if é o nosso Guard. Ele vai parar a execução se um email inválido for passado. Simples, né?!
O código ainda está sujo por causa dos níveis de abstração mas eu não vou abordar esse assunto nesse artigo. Fica pra um próximo hehehe. Vamos focar nos Guards por ora.
O conceito de Guards é uma forma simples de evitar criar ifs aninhados. Ah, você também pode ter vários Guards:
function usandoGuards(email, password) {
if(!email || !email.includes('@')) {
console.log('Email inválido');
return; // that's where the magic happens
}
if(!password && !password.trim() === '') {
console.log('Password inválido');
return;
}
// Faz alguma coisa
}
Agora que estamos usando nossos Guards do jeito certo, estamos livres pra escrever qualquer lógica de negócio abaixo porque, no fim, já estamos fazendo a validação com os Guards.
Uma última dica: a necessidade de usar Guards pode ser identificada de forma fácil se você tiver um if-else onde no else, você tem a saída negativa:
if (user) {
// Faz alguma coisa
} else {
console.log('esse é um erro!');
}
Tente fazer isso sozinho e vai ver a legibilidade do seu código aumentar!
NOTA: Todos os exemplos foram feitos com JavaScript mas você pode usar a linguagem da sua preferência pois os princípios são os mesmos.
Alguma opinião ou algo a acrescentar? esqueci de algo? não tenha medo e deixe seu comentário!
Obrigado por ler! =)
Top comments (0)