Escolhendo e aprendendo um framework


Os dois últimos capítulos cobriram o que são frameworks e o que existe. Este é o lado prático: se usar um, qual usar, e como aprendê-lo. A ordem importa, porque a primeira pergunta é a que mais frequentemente é pulada.
Você deveria usar um framework?
Imagine dois projetos. O primeiro é um app com contas, formulários e telas que reagem a dados compartilhados. Construir isso manualmente significa reconstruir exatamente o trabalho que um framework já aperfeiçoou, e a versão vanilla acaba sendo um framework espalhado e meio testado de sua própria invenção que ninguém quer herdar. Recorrer a Django ou React ali é escolher menos partes móveis que a alternativa.
O segundo é uma página de apresentação, um site de conteúdo, um script pequeno, um formulário que envia para algum lugar. HTML, CSS e um pouco de JavaScript cobrem esses casos sem passo de build, sem atualizações de dependências, e nada para migrar no próximo ano. Envolver uma página assim em um framework completo adiciona maquinário que só o tooling se beneficia. Muitos desenvolvedores experientes colocam vanilla em produção de propósito, e é uma resposta profissional, nunca um compromisso de iniciante.
Engenharia tem uma regra antiga e direta que cobre ambos os casos: KISS, "keep it simple, stupid". O insulto é dirigido ao design e não ao designer, e a ideia é que a melhor solução é aquela com a menor maquinaria que ainda faz o trabalho. Ambos os projetos acima obedecem isso, e chegam em respostas opostas.
Isso torna o teste uma pergunta, feita fresca para cada projeto: escolha qualquer opção que deixe você com menos maquinaria para manter. Quando o trabalho técnico enorme o produto, esse é o framework. Quando o produto é quase tudo o que existe, esse é vanilla.
Como escolher um
Quando a resposta é sim, escolha com critérios prosaicos. Benchmarks e comparações de funcionalidades são as entradas menos úteis, porque dentro de uma família as opções populares são todas rápidas o suficiente e capazes o suficiente. O que realmente molda sua vida diária:
O ecossistema e comunidade: documentação madura, perguntas respondidas, e pacotes para os problemas que você vai enfrentar. O time e codebase que você está entrando: o melhor framework geralmente é aquele que seu projeto já usa, e consistência bate novidade dentro de um time. O mercado de trabalho, se aprender para trabalhar: números de uso puro importam, o que é em grande parte por que React é a primeira escolha racional de muita gente. E a linguagem que você conhece: um desenvolvedor Python alcança Django mais rápido que Rails por razões que nada têm a ver com qualidade.
Mantenha a opção vanilla na lista até o final. Se a tabela de comparação se enche e nenhum dos candidatos bate "nenhuma das anteriores" no teste de simplicidade, essa é a resposta te dizendo algo.
Como aprender qualquer framework
Aprenda a linguagem primeiro. Um framework assume sua linguagem em todo lugar: código React é JavaScript da cabeça aos pés, e cada linha confusa de um app Django é Python por baixo. Aprendizes que pulam para o framework acabam debugando dois mistérios ao mesmo tempo, o comportamento do framework e a sintaxe da linguagem, sem forma de saber qual é qual. Se React é seu objetivo, o JavaScript track é o passo primeiro real; para Django ou pytest, o Python track desempenha o mesmo papel. Linguagem primeiro é o atalho único maior que existe, porque é a parte que transfere para todo lugar.
Depois construa algo pequeno e real. Um pequeno projeto que você realmente quer, construído enquanto se apoia no tutorial oficial, ensina mais que qualquer quantidade de assistir e ler, porque a forma do framework só faz sentido sob suas próprias mãos. Mantenha o primeiro projeto modesto de propósito: seu único trabalho é apresentá-lo às ideias do framework, e a obra-prima pode vir depois.
E conforme você prossegue, continue perguntando o que o framework está fazendo por você. Cada funcionalidade conveniente está no lugar de algo real: uma rota no lugar de parsing de URL, um componente no lugar de atualizações de DOM, um model no lugar de SQL. Você não precisa dominar essas camadas de antemão, mas saber que existem, e aproximadamente o que o framework faz com elas, é o que separa usar um framework de depender cegamente dele.
Onde isso te deixa
Esse é o primer completo: simplicidade como o teste, critérios prosaicos para a escolha, linguagem antes de framework para o aprendizado. Quando um framework específico aparece depois, nestes docs ou por aí, The kinds of frameworks é o mapa para colocá-lo, e What is a framework é a definição por baixo.

