O Que É Conceito DRY

Você já ouviu falar sobre um tal de DRY? DRY é uma sigla para Don’t Repeat Yourself, que significa Não Se Repita!
Este princípio tem como intuito a redução de código repetidos em toda sua aplicação.
Mas porque é tão importante evitarmos isso?

Primeiramente, devemos ter em mente que não faz sentido ter um mesmo trecho de código em diversos lugares diferentes, isso é ambiguidade!
Isso acaba por deixar o seu sistema maior do que realmente necessário! Não faz sentido isso, certo?

E se precisarmos fazer a correção de uma função que, por algum motivo, se repete em diversos lugares, vamos ter que alterar o mesmo código N vezes, afim de manter sua compatibilidade. Isso é horrível quando pensamos em manutenção de código, mais um motivo para evitarmos a repetição desnecessária de código!

Como podemos melhorar nossa estrutura?

Uma das formas que podemos seguir afim de evitar tal redundância é criarmos um arquivo específico para essas funções compartilhadas.
Em meus projetos, quando me deparo com funções desse tipo, eu as deixo separadas, dentro de uma pasta chamada Utils.

Dentro dessa pasta, crio minhas funções exportando-as, para que eu possa reutilizá-las livremente por todo meu software! E caso precise fazer alguma correção, faço em um lugar apenas!

Exemplo de função compartilhada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// utils/formValidator.js

/**
* Return if the email
* is a valid one
* @param {String} email The user's email
*/
export const validateEmail = (email) => /\S+@\S+\.\S+/.test(email);

/**
* Returns if the lenght of the
* fullname is more than 8 characters
* @param {String} fullname The user's Fullname
*/
export const validateFullname = (fullname) => fullname.length >= 8;

Com isso, onde quer que eu precise utilizar essas funções, eu preciso apenas importá-las!
Muito mais simples e prático, não é?