TIPs: Dê nomes as merdas das suas expressões regulares

TIPs: Dê nomes as merdas das suas expressões regulares

Eu sei, muita gente tem medo de usar expressão regulares, porque realmente podem ter buscas e usos delas que vão mais te dar dores de cabeça do que beneficios.

Mas também é inegável a facilidade que elas trazem e se traz facilidade e ganho de tempo você deveria usar, com cuidado, mas deveria. Aprende bem a fundo inclusives os problemas para evita-los e não vai achando que será bala de prata.

Aqui vai a dica tão valiosa, de que você deveria estar nomeando suas expressões regulares. Essa é a dica. Se quiser ir embora do post pode, agora se quiser ver uma dica de organização, continua aí que é super rápido. Na real até poderia ter sido um thread no twitter, mas lá se perderia.

Dicionário

Dicionários ou mapeamento, enumeravies como queria chamar esse tipo de organização, agrupar complexidades por chave e valor pode ter seu valor.

Então vamos supor que temos uma expressão regular que procura por classes de um css. Criar um objeto que contenha o nome dessa busca dentro de um objeto, pode facilitar tanto no reuso como em auxiliar no futuro a manutenção dessa expressão regular.

Por exemplo ao invés do código:

/$(group|button)^/gi.test(element.className)

Em que facilmente perderíamos facilmente o significado da busca de grupo ou botão no inicio e final da string. Podemos ter isso junto de outro arquivo ou até no mesmo lugar que será usada, dependendo da aplicação. (em outro arquivo facilita reuso, mas tem q tomar cuidado com acoplamento de dependências)

const REGEXP = {
	searchForGroupOrButtonAtStartEnd: /$(group|button)^/gi,
};

function (element) {
  REGEXP.searchForGroupOrButtonAtStartEnd.test(element.className);
}
Puxa mais ficou muito mais verboso - você ao ver o código acima

Bom aí que está a questão a ideia é que depois de 20 dias, que você não tem mais noção do que essa código faz, essa verbosidade toda vai te ajudar a lembrar.

Verbosidade de código não é ruim, se adiciona significado util. Diferente de tipagem e abstrações inuteis que acabam sendo redundantes. (Eu tenho um draft prometo que ainda vou terminar)

Essa é dica rápida de hoje, nomei suas expressões regulares, se a aplicação for grande crie uma biblioteca para elas. Não deixe que elas cresçam na sua aplicação de forma desenfreada e sem controles elas podem ser como gremilins.