O guia final das ferramentas de JavaScript

março 31, 2017 12:00 pm Publicado por Deixe um comentário

Se você está lendo este artigo, provavelmente já sofreu procurando uma tecnologia para resolver um problema específico e acabou sendo bombardeado por uma enorme lista de frameworks que fazem quase a mesma coisa, variando só entre “nome_dela.js”. Então, você começa a procurar por opiniões sobre os frameworks… E aí vem o inferno. Opiniões diversas por toda a internet, variando desde “A é muito melhor que B”, até “B é maravilhoso, eu não sei por que as pessoas ainda usam A”, além de “B nem deveria existir, C é a melhor opção”. Bom, a intenção deste artigo não é dizer para você usar A, B ou C, mas te dar algumas dicas sobre como sobreviver em um ambiente no qual as “tendências” surgem a cada 10 segundos.

Conheça seu projeto

Antes de tudo, lembre-se sempre da pergunta: “o que eu preciso?”. Às vezes, estamos tão desesperados tentando resolver uma questão, que nem medimos o impacto de adicionar outra dependência ao projeto. Antes de implementar códigos de terceiros, é essencial checar a compatibilidade das ferramentas que você quer adicionar com aquelas que você já tem.

Verifique suas armas

Uma espada quebrada não pode matar um Kraken. Antes de pegar uma lib, veja se está atualizada. Alguns frameworks “resolvedores de problemas” são simplesmente abandonados, e adicionar algum deles ao seu projeto é garantia de fortes dores de cabeça. Verifique, dê uma olhada se o build está passando, se os problemas estão sendo resolvidos e como o autor reage aos feedbacks. Tudo é importante.

Não siga o fluxo (ou pelo menos entenda-o antes de entrar nele)

A comunidade JavaScript é gigante, assim como a divergência de opiniões sobre o que é legal ou não. Essa quantidade enorme de possibilidades faz com que seja quase impossível saber profundamente sobre todas elas, mas quando você segue o pessoal certo, você começa a ter contato com o “feeling” da comunidade sobre certas ferramentas. É um ótimo jeito de ganhar um upgrade no cenário atual de frameworks, mas isso não significa que você TEM QUE usá-las em todo novo projeto ou que você TEM QUE substituir todas as ferramentas que você já está usando pelas novas tendências.

“Movimentos circulares, Daniel-san!”. Leve um tempo para entender como funciona e os prós e contras se você pretende substituir alguma coisa que você já está usando. Avalie se é melhor, pior, a mesma coisa e por quê. Lembre-se: às vezes, o que é excepcional para você, pode ser um problema para outra pessoa e vice-versa.

Comprando uma espada nova

Antes de decidir qual ferramenta vamos usar no projeto, é bom prestar atenção em alguns pontos:

1. Dê uma olhada nas que brilham mais (muitas estrelas no GitHub/npm downloads)

Normalmente, são as que realmente funcionam e estão prontas para produção (NORMALMENTE). Além disso, com um monte de usuários, provavelmente, vai ser mais fácil achar guias ou soluções para alguns problemas.

2. Avalie a documentação

Documentação consistente e clara vai fazer seu processo de aprendizado fluir muito melhor. Prefira sempre as ferramentas com bons documentos e você vai ter um problema a menos pra se preocupar.

3. Procure por indicativos de confiança

Quando essa lib foi feita? Há quanto tempo foi o último commit? É atualizada? Alguém está mantendo? Pegar ferramentas desatualizadas cedo ou tarde vai gerar problemas…

4. “Essa aqui é mais afiada… Mas essa tem uma melhor aderência”

Nós temos um monte de ferramentas que tem o mesmo propósito, mas com diferenças entre suas features. Quando você ficar em dúvida, avalie ambas e faça uma lista de comparação de suas particularidades e de seus atributos antes de escolher uma delas.

5. “Com este óleo, sua espada vai transformar montanhas em rochas!”

Veja como a comunidade está tratando a ferramenta. Alguns frameworks têm um ecossistema enorme baseado na forma como eles fazem as coisas e às vezes a negligência da comunidade torna quase inviável usar certas tecnologias.

6. “Essa aqui é a cara do meu build!”

Preste atenção se essa ferramenta funciona bem com todo o seu pacote ou se você está adicionando besteira redundante desnecessária ao seu projeto.

Entendendo sua árvore de habilidades (vamos falar sobre paradigmas)

Se você tem a melhor espada do mundo, mas você é um arqueiro, ela será apenas uma espada, mas se você tem o melhor arco, aí ele se tornará uma ferramenta de destruição maciça. Compreender os paradigmas do JavaScript é perceber que há muitos deles com seus próprios prós e contras, comportamentos e também com o seu próprio conjunto de ferramentas. JavaScript é uma prescritiva, imperativa, funcional, reativa e “whatever comes next”, então você tem que aprender como e quando usar um desses paradigmas.

“Putz, eu fiz tudo no imperativo mas FRP é a nova tendência! Vou mudar todo o meu app para FRP.” – John Doe

Calma aí, John Doe! Leia a seção de “Não siga o fluxo” de novo. Se você ainda está pensando em mudar, meça seu esforço criando primeiro um novo branch de features seguindo o paradigma e verifique o quão benéfico vai ser. Refatorar o núcleo do seu aplicativo pode ser uma tarefa árdua. Só faça se realmente valer a pena.

Monte sua aliança

Veja o que seus colegas de time estão usando e estudando. Alguns monstros grandes (oi, React) são mais fáceis quando enfrentados por um grupo com uma estratégia bem desenhada. Além disso, você pode pegar uma onda em um nível mais experiente e subir mais rápido.

Conclusão

Essa masmorra é um labirinto, mas tem várias saídas. Vai ser difícil no começo, mas depois que você se acostumar com os desafios, você vai correr como nunca pensou antes. Seja forte, esteja focado e use as ferramentas certas. Nada mais irá pará-lo.

Ficou alguma dúvida ou tem algo a dizer? Aproveite os campos abaixo.

***

Post originalmente publicado (em inglês) no Medium pessoal do autor. Confira aqui.

***

Artigo publicado em: https://www.concretesolutions.com.br/2017/03/29/guia-ferramentas-de-javascript/

Source: IMasters

Categorizados em:

Este artigo foi escrito pormajor

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *