Existe alguns pontos que eu acho problemáticos ao se adotar uma dependência (lib, framework,...)
Pelo hype
Como diriam os titãs: a melhor banda de todos os tempos da última semana
Todo dia surgem ferramentas milagrosas, resolvedoras de todos os males. Porém ninguém realmente testou essas ferramentas em produção por muito tempo, e já tem gente colocando em projetos reais.
Fazer isso é anti-profissional
Sem entender se o projeto/problema realmente precisa de uma solução desse tipo
Usando React como exemplo, tem muito site por aí que não precisava de React. Normalmente o programador adotou React por ser a única coisa que ele se propôs a estudar, e pulou os estudos de conceitos.
Já vi alguns projetos usando React apenas para validar formulários, gente... A validação nativa de formulários do HTML que está disponível há anos, já dá conta de boa parte do recado.
Sem entender como a dependência funciona
A pessoa nunca nem viu a dependência funcionando, não leu a documentação, não fez uma PoC. Apenas dá um npm install ...
(composer, cargo, pip, etc), e reza para funcionar.
Sem se preocupar se o projeto é bem mantido pela empresa ou comunidade por trás dessa dependência
Além de projetos, já vi até tutoriais apresentando o uso de libs que já não são mais mantidas há muito tempo. Como o silex sem manutenção há 6 anos.
O silex era muito usado para criar rotas no PHP, esse tipo de projeto causa uma forte dependência do seu projeto com a lib, imagina o quão frágil é um projeto usando silex hoje em dia. Além desse forte acoplamento, não deixar seu projeto ser atualizado para novas versões do PHP nesse caso.
Sem dominar a linguagem por trás dessa dependência
Isso é o principal ponto de falha na minha opinião, se você não tem o mínimo de domínio na linguagem base, como você saberia dizer que um erro no projeto é por conta da lib ou por conta do seu código?
Já peguei um bug de um projeto em que a lib utilizada não realizava o clearInterval
quando necessário. Perguntei ao programador original do projeto se ele não tinha visto, e por incrível que pareça ele não sabia o que era clearInterval
. Típico programador frontend, mas desde que o frontend seja restrito ao framework X.
Quando é uma boa ideia usar dependências externas
Uma vez superado os pontos descritos acima, dependências externas são realmente uma boa ideia para agilizar a entrega.
Não há motivo para se recriar o ExpressJS se ele atende muito bem a necessidade do projeto.
Mas cuidado com a preguiça, dois exemplos clássicos são:
A primeira retorna se um número é ímpar, a segunda retorna se o número é par. 🤡🤡🤡
Ou seja, fazem o mesmo que (n % 2) === 0
e (n % 2) !== 0
. Precisa mesmo dessa dependência no projeto?
Pela quantidade de instalações na semana, tem gente que pensa que sim, são UMA VERGONHA PARA A PROFISSION