Reino Unido
Categorias

Como o governo do Reino Unido removeu o jQuery de seu site oficial

Em 2006, o jQuery surgia como uma solução completa que revolucionava o JavaScript, tornando mais fácil o acesso a elementos do DOM, habilitando animações descomplicadas e interagindo com conteúdo dinâmico através do Ajax. Era uma panaceia, um remédio para todos os males, uma ferramenta poderosa nas mãos certas e sua popularidade explodiu, se tornando a biblioteca JavaScript mais utilizada no mundo inteiro. Dezesseis anos depois, o jQuery ainda está presente em 77% dos 10 milhões de sites mais visitados da internet.

Entretanto, a solução dá sinais de obsolescência. Novas e melhores tecnologias surgiram como alternativas, assim como estratégias que levaram o JavaScript para o lado do servidor. Muito do que era possível somente com o uso do jQuery, hoje já pode ser alcançado com JavaScript simples, sem problemas de compatibilidade entre os navegadores e sem a necessidade de sobrecarregar a conexão com mais um arquivo para baixar.

Em um artigo publicado na internet, o governo do Reino Unido explica como substituiu a biblioteca veterana por uma solução mais moderna, em busca de performance e acessibilidade para seus cidadãos.

Respeitando o Open Government Licence v3.0, traduzimos e reproduzimos o artigo na íntegra:

“O GOV.UK é o lar online do governo do Reino Unido, por isso temos que garantir que funcione para todos, independentemente do dispositivo ou da velocidade da conexão. Isso significa que estamos sempre procurando maneiras de melhorar o desempenho e a experiência do usuário, bem como o código por baixo.

Por muito tempo, nosso código frontend em www.gov.uk – o domínio de publicação para GOV.UK – dependeu de uma versão desatualizada do jQuery, uma biblioteca projetada para facilitar a escrita de JavaScript. Veja como e por que decidimos remover o jQuery e quais foram os resultados.

Como usávamos jQuery no GOV.UK

O GOV.UK consiste principalmente em páginas estáticas de conteúdo, por isso usamos JavaScript principalmente para dados analíticos, cookies e pequenas interações da interface do usuário, como elementos que se expandem e colapsam.

A arquitetura do GOV.UK é bastante complexa e nosso JavaScript está espalhado por vários aplicativos que atendem a diferentes tipos de páginas. Como muitos sites grandes, esse JavaScript é uma mistura de novo e antigo, bem documentado e não tão bem documentado.

jQuery foi amplamente usado em nossos aplicativos, tanto em scripts voltados para o público quanto em arquivos de teste. Contamos com vários recursos do jQuery, principalmente o manuseio do Ajax (para recarregar partes da página dinamicamente), mas geralmente o usávamos para tornar nosso código mais simples.

A principal desvantagem de usar o jQuery é que ele precisa ser incluído nos ativos da página, o que pode diminuir a velocidade de carregamento de um site. As páginas do GOV.UK variam em tamanho, mas a página inicial tem cerca de 246 kB – 32 kB (13%) dos quais são jQuery. Isso não é uma quantia enorme, mas vale a pena considerar o impacto no desempenho, especialmente para usuários em dispositivos de baixa especificação.

A escala do problema

O GOV.UK dependia de uma versão antiga do jQuery. Sabíamos que precisávamos atualizar, mas também sabíamos que o jQuery estava causando problemas de desempenho em algumas partes do GOV.UK.

Decidimos que, em vez de atualizar, seria melhor remover o jQuery. Esta foi uma tarefa enorme. Tínhamos pelo menos 200 scripts, alguns deles com apenas algumas linhas, outros centenas, além de muitos outros testes que também usavam jQuery.

Embora fosse uma tarefa grande, consistia principalmente em pedaços relativamente pequenos – qualquer pedaço de JavaScript no GOV.UK poderia ter o jQuery removido dele como um trabalho isolado. Isso significava que os desenvolvedores poderiam contribuir com a tarefa mesmo que tivessem apenas algumas horas disponíveis.

Como fizemos

Em primeiro lugar, paramos de adicionar qualquer novo jQuery ao GOV.UK para impedir que a tarefa ficasse maior.

Em segundo lugar, espalhamos o esforço entre os desenvolvedores no GOV.UK – tanto no front-end quanto no back-end. Os desenvolvedores de back-end no GOV.UK normalmente não escrevem muito JavaScript, mas reconheceram a importância do trabalho e, com um pouco de treinamento e suporte, logo fizeram um grande progresso.

O trabalho ainda precisava de entrada de desenvolvedores front-end para alguns ativos JavaScript maiores e mais complexos, mas depois de escrever alguma documentação sobre como remover o jQuery e um pouco de pareamento de desenvolvedores, logo descobrimos que aplicativos inteiros estavam se tornando livres do jQuery. Esse esforço extra teve um impacto enorme – provavelmente reduziu a duração do projeto em vários anos.

Também tomamos algumas decisões difíceis. Dois de nossos aplicativos continham uma grande quantidade de jQuery, mas não fornecem muitas páginas públicas para GOV.UK. Em vez de bloquear o progresso, demos a esses aplicativos sua própria cópia da biblioteca, para que a maioria do GOV.UK ainda pudesse ser liberada do jQuery.

Isso foi pontuado por nosso trabalho na COVID-19 e outras prioridades, mas no início de 2022 estávamos em condições de começar a considerar opções para finalmente remover o jQuery do GOV.UK.

O empurrão final

Criamos uma versão de desenvolvimento do site sem qualquer jQuery, para que pudéssemos usar para testar cada aplicação. Isso nos permitiu verificar erros causados ​​por qualquer código jQuery que pudéssemos ter perdido, além de fornecer a primeira oportunidade real de medir o impacto de nossa alteração no desempenho. Este teste foi minucioso e demorado e felizmente revelou poucos problemas.

No final de março de 2022, finalmente estávamos prontos para implantar nossa alteração no site ativo. Isso exigia um tempo cuidadoso para implantar primeiro os aplicativos que receberam seu próprio jQuery. Embora incluir o jQuery duas vezes não tenha causado nenhum erro, ele aumentou desnecessariamente o tamanho do ativo para os usuários e estávamos ansiosos para não ter isso em vigor por muito tempo. Depois que esses aplicativos foram implantados, conseguimos implantar a alteração para remover o jQuery – um processo bem-sucedido, embora estressante.

O resultado

A remoção do jQuery significa que 32Kb de JavaScript foram removidos da maioria das páginas no GOV.UK. GOV.UK já é bastante rápido para carregar e para muitos usuários isso não fará diferença perceptível. No entanto, a mudança para usuários em uma conexão de baixa largura de banda ou dispositivo de especificação inferior será muito mais perceptível, resultando em velocidade e desempenho de download de página significativamente aprimorados. Forneceremos mais detalhes sobre exatamente o que isso significa na próxima postagem do blog.

Do ponto de vista do desenvolvedor, remover o jQuery tem sido um processo longo, mas que vale a pena. Reescrever nosso código nos ensinou muito sobre isso e expandimos e melhoramos nossos testes. Em muitos lugares, conseguimos reestruturar e melhorar nosso código e, em alguns casos, remover scripts que não eram mais necessários.

O que começou inicialmente como um projeto paralelo para remover dívidas de tecnologia e código legado também trouxe benefícios adicionais em desempenho, segurança e familiaridade do desenvolvedor com nosso código JavaScript. Um bônus adicional é que também removemos uma dependência externa do GOV.UK, o que reduz nosso esforço de manutenção e possíveis riscos de segurança futuros.”

Publicado originalmente como “How and why we removed jQuery from GOV.UK” em 11 de agosto de 2022. Traduzido e republicado de acordo com a Open Government Licence v3.0.