Escolhendo e aprendendo um framework


Os dois últimos capítulos cobriram o que são frameworks e quais existem. Este é a parte prática: se você deve usar um, qual usar e como aprendê-lo. A ordem importa, porque a primeira pergunta é justamente a que costuma ser pulada.
Você precisa de um framework?
Imagine dois projetos. O primeiro é um app com contas, formulários e telas que reagem todas a dados compartilhados. Construir isso na mão significa recriar exatamente a estrutura que um framework já aperfeiçoou, e a versão sem framework acaba se tornando um framework improvisado seu, espalhado e mal testado, que ninguém vai querer herdar. Recorrer a Django ou React nesse caso é optar por menos peças móveis do que a alternativa.
O segundo é uma landing page, um site de conteúdo, um script pequeno, um formulário que envia dados para algum lugar. HTML puro, CSS e um pouco de JavaScript resolvem isso sem build, sem atualizações de dependências e sem nada para migrar no ano seguinte. Envolver uma página assim em um framework completo adiciona uma estrutura da qual só as ferramentas se beneficiam. Muitos desenvolvedores experientes optam por código puro de propósito, e essa é uma decisão profissional, nunca uma concessão de principiante.
A engenharia tem uma regra antiga e direta que cobre os dois casos: KISS, "keep it simple, stupid" (mantenha simples, estúpido). A crítica é dirigida ao design, não a quem projeta, e a ideia é que a melhor solução é a que tem menos engrenagens e ainda assim faz o trabalho. Os dois projetos acima seguem essa regra, e chegam a respostas opostas.
Isso transforma a decisão em uma única pergunta, feita de novo para cada projeto: escolha a opção que deixa menos estrutura para você manter. Quando a estrutura de suporte supera em muito o produto, a resposta é o framework. Quando o produto é praticamente tudo o que existe, a resposta é o código puro.
Como escolher um
Quando a resposta é sim, escolha com critérios nada glamourosos. Benchmarks e comparações de recursos são as informações menos úteis, porque dentro de uma mesma família as opções populares já são todas rápidas o suficiente e capazes o suficiente. O que realmente molda o seu dia a dia:
O ecossistema e a comunidade: documentação madura, perguntas já respondidas e pacotes para os problemas que você vai encontrar. A equipe e a base de código que você está entrando: o melhor framework geralmente é o que o seu projeto já usa, e consistência vence novidade dentro de uma equipe. O mercado de trabalho, se você está aprendendo para conseguir emprego: os números de uso puro e simples importam, o que explica boa parte de por que React é a escolha racional inicial de muita gente. E a linguagem que você já conhece: um desenvolvedor Python chega ao Django mais rápido do que ao Rails, por razões que não têm nada a ver com qualidade.
Mantenha a opção de código puro na lista até o fim. Se a tabela de comparação se encher e nenhum dos candidatos superar a opção "nenhum dos anteriores" no teste de simplicidade, isso já é uma resposta dizendo algo.
Como aprender qualquer framework
Aprenda a linguagem primeiro. Um framework pressupõe sua linguagem em todo lugar: código React é JavaScript do começo ao fim, e cada linha confusa de um app Django é Python por baixo. Quem pula direto para o framework acaba depurando dois mistérios ao mesmo tempo, o comportamento do framework e a sintaxe da linguagem, sem conseguir distinguir um do outro. Se React é seu objetivo, a trilha de JavaScript é o verdadeiro primeiro passo; para Django ou pytest, a trilha de Python cumpre o mesmo papel. Linguagem primeiro é o maior atalho que existe, porque é a parte que se aplica em qualquer lugar.
Depois, construa algo pequeno e real. Um projetinho que você realmente queira fazer, construído com o tutorial oficial ao lado, ensina mais do que qualquer quantidade de vídeos e leitura, porque a forma do framework só faz sentido quando você mesmo põe a mão na massa. Mantenha o primeiro projeto modesto de propósito: o único trabalho dele é te apresentar às ideias do framework, e a obra-prima pode vir depois.
E, ao longo do caminho, continue perguntando o que o framework está fazendo por você. Todo recurso conveniente está substituindo algo real: uma rota substitui a análise de URL, um componente substitui atualizações do DOM, um model substitui SQL. Você não precisa dominar essas camadas desde já, mas saber que elas existem, e ter uma ideia aproximada do que o framework faz com elas, é o que separa usar um framework de depender dele às cegas.
Onde isso te deixa
Esse é o resumo completo: simplicidade como critério de decisão, critérios nada glamourosos para a escolha, linguagem antes do framework para o aprendizado. Quando um framework específico aparecer pela frente, nesta documentação ou no mundo real, Os tipos de frameworks é o mapa para posicioná-lo, e O que é um framework é a definição que sustenta tudo isso.

