Concrete Logo
Hamburger button

O Guia Final das ferramentas de JavaScript

  • Blog
  • 29 de Março de 2017
Share

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

Se você está lendo este post, provavelmente já sofreu procurando uma tecnologia para resolver um problema específico e 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 Guia 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 antes de entrar nele)

jean1

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

jean2

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)

jean3

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

jean4

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

jean5

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”

jean6

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!”

jean7

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!”

jean8

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)

jean9

Se você tem a melhor espada do mundo mas você um arqueiro, é só uma espada pra você. Mas se você tem o melhor arco, isso vira uma arma de destruição massiva. Entenda os Paradigmas do JavaScript, existe um monte deles com seus próprios prós e contras, comportamentos e até ferramentas. JavaScript é uma linguagem

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

jean10

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.

É desenvolvedor e quer trabalhar em um time ágil de verdade? Clique aqui.