Startec

Startec

Aumente o Desempenho das suas Aplicações Web com o Poder do Code Splitting! · lucasnsantos

Mai 24, às 17:27

·

4 min de leitura

·

0 leituras

Capa Introdução Nos últimos anos, a criação de aplicações web cada vez mais complexas se tornou comum. Com essa complexidade crescente, é importante garantir aplicações cada vez mais otim...
Aumente o Desempenho das suas Aplicações Web com o Poder do Code Splitting! · lucasnsantos

Capa

Introdução

Nos últimos anos, a criação de aplicações web cada vez mais complexas se tornou comum. Com essa complexidade crescente, é importante garantir aplicações cada vez mais otimizadas e uma experiência de usuário fluida.

Uma abordagem eficaz para alcançar esses objetivos é o code splitting (divisão de código), uma técnica que permite carregar partes específicas do código de forma assíncrona sob demanda.

Neste artigo, exploraremos o code splitting, discutindo suas dificuldades de implementação e os benefícios de desempenho que essa abordagem oferece.


O que é “Code Splitting”?

O code splitting é uma técnica que divide o código de uma aplicação em pacotes menores, permitindo que sejam carregados apenas quando necessários. Em vez de carregar todo o código da aplicação de uma vez só, o code splitting permite que os pacotes sejam carregados de forma assíncrona, conforme o usuário navega pela aplicação.

Dificuldades de Implementação

Embora o code splitting traga benefícios significativos para o desempenho de uma aplicação, a sua implementação pode apresentar alguns desafios. Abaixo, destacamos algumas dificuldades comuns:

  • Identificação de pontos de divisão: Identificar os pontos no código em que a divisão pode ocorrer é um desafio inicial. É necessário analisar e entender a estrutura da aplicação para determinar quais componentes ou rotas podem ser separados em pacotes distintos.
  • Gerenciamento de estado compartilhado: Ao dividir o código, é fundamental garantir que o estado compartilhado entre os pacotes seja gerenciado corretamente. O uso de gerenciadores de estado, pode ajudar a lidar com esse desafio, permitindo que o estado seja compartilhado de maneira eficiente entre os diferentes pacotes.
  • Manutenção da estrutura de rotas: É necessário garantir que a estrutura de rotas seja preservada. É importante que cada rota corresponda ao pacote de código apropriado, garantindo que apenas os componentes necessários sejam carregados em cada página.

Resultados

Para os meus primeiros testes, decidi seguir duas estratégias, por ROTAS e pelos COMPONENTES maiores e com maior número de dependências, assim poderia diminuir o “Circular Dependencies” para itens que não precisariam serem carregados, essa simples estratégia quase me rendeu 1 segundo de carregamento.

Sem Code Spliting
Resultados adquiridos sem Spliting

Com Code Spliting
Resultados adquiridos com Code Spliting

Aqui vocês podem notar a diferença de um “build” feito com e sem “Code-Splitting”.

Sem Code Spliting
Build sem Code Spliting

Com Code Spliting
Build com Code Spliting


No mundo web sabemos que sistemas que demoram mais 5 segundos para seu primeiro carregamento, são drasticamente penalizados pelos indexadores de conteúdos, fiquei muito feliz com resultado, outras estratégias devem ser aliadas para melhorar esses resultados.

Fica minha dica para as pessoas que não estudaram essa técnica, pode ser um bom ponto de partida para melhorias de desempenhos dos seus sistemas.

Benefícios alcançados

A adoção do code splitting traz diversos benefícios de desempenho.

Vejamos alguns deles:

  • Carregamento mais rápido: Ao dividir o código em pacotes menores, é possível reduzir o tamanho do pacote inicial que precisa ser carregado pelo navegador. Isso resulta em tempos de carregamento mais curtos, o que é especialmente crucial para usuários em conexões de internet mais lentas ou dispositivos com recursos limitados.
  • Melhor experiência do usuário: Ao carregar apenas o código necessário para cada rota, a experiência do usuário melhora significativamente. As transições entre páginas se tornam mais rápidas e suaves, aumentando a satisfação do usuário e diminuindo a taxa de rejeição.
  • Otimização de recursos: Com o code splitting, apenas o código necessário é carregado, evitando o carregamento desnecessário de componentes ou bibliotecas em páginas que não os utilizam. Isso resulta em uma utilização mais eficiente dos recursos do navegador, como memória e CPU.

Conclusão

O code splitting é uma abordagem poderosa para otimizar o desempenho de aplicações. Embora a implementação possa apresentar desafios, os benefícios obtidos são significativos. Ao dividir o código em pacotes menores e carregá-los de forma assíncrona sob demanda, podemos melhorar o tempo de carregamento das aplicações, proporcionar uma experiência do usuário mais fluida e otimizar o uso dos recursos do navegador. Ao considerar o code splitting em seus projetos, é importante entender os benefícios em relação às dificuldades de implementação, buscando alcançar um equilíbrio ideal entre desempenho e complexidade.


Referências


Continue lendo

Hacker News

Atomic Wallet exploited, users report loss of entire portfolios
Several users on Twitter have reported losses of crypto assets, claiming funds held on the Atomic Wallet app vanished. 10886 Total views 75 Total shares Atomic Wallet has been apparently exploited, with...

Hoje, às 01:41

Hacker News

It Will Cost Up to $21.5 Billion to Clean Up California’s Oil Sites. The Industry Won’t Make Enough Money to Pay for It.
An expert used California regulators’ methodology to estimate the cost of cleaning up the state’s onshore oil and gas industry. The study found that cleanup costs will be triple the industry’s projected profits.

Hoje, às 01:01

DEV

How to Create an Evil Twin Access Point; Step-by-Step Guide
Step-by-Step Guide: Creating an Evil Twin An Evil Twin Access Point is a malicious wireless access point that is set up to mimic a legitimate one. It can be used to intercept sensitive information such as...

Jun 3, às 23:41

TabNews

200 anos em 2 mêses: Usando o ChatGPT para auxiliar na criação de um mundo de fantasia. · MarquesJr
Não, eu não pedi pra Gepeto (ChatGPT) criar um mundo fictício de fantasia pra mim e pronto, nem tão pouco incentivo essa prática e também não irei passar uma fórmula mágica. Nesse artigo...

Jun 3, às 23:07

DEV

Atomic Design: A Methodology for Building Design Systems
Introduction Atomic Design is a methodology for creating design systems that recognizes the need to develop thoughtful design systems, rather than creating simple collections of web pages. In this approach,...

Jun 3, às 23:04

Hacker News

Thought Cloning: Learning to Think while Acting by Imitating Human Thinking
Language is often considered a key aspect of human thinking, providing us with exceptional abilities to generalize, explore, plan, replan, and adapt to new situations. However, Reinforcement...

Jun 3, às 23:00

AI | Techcrunch

YouTube rolls back its rules against election misinformation
YouTube was the slowest major platform to disallow misinformation during the 2020 U.S. election and almost three years later, the company will toss that policy out altogether. The company announced Friday...

Jun 3, às 22:57

DEV

Techinical Debt; what is it?
Imagine you're building a house. You want to finish it quickly, so you take some shortcuts along the way. You use low-quality materials, skip some important steps, and don't do thorough testing. The house is...

Jun 3, às 22:45

Marktechpost AI Research News

Researchers From UT Austin and UC Berkeley Introduce Ambient Diffusion: An AI Framework To Train/Finetune Diffusion Models Given Only Corrupted Data As Input
For learning high-dimensional distributions and resolving inverse problems, generative diffusion models are emerging as flexible and potent frameworks. Text conditional foundation models like Dalle-2, Latent...

Jun 3, às 22:40

Hacker News

Scientists may be able to put Mars-bound astronauts into 'suspended animation' using sound waves, mouse study suggests
Ellen Ripley (played by Sigourney Weaver) places herself into suspended animation in the 1979 movie Alien. (Image credit: AJ Pics/Alamy Stock Photo) Scientists have blasted the brains of mice and rats...

Jun 3, às 22:38