No início deste ano, nos comprometemos a falar, a cada dois meses, sobre o trabalho que temos feitos nos bastidores para melhorar o desempenho do cliente de League of Legends.
A atualização de hoje é a terceira parte dessa série. Confira o primeiro blog aqui e o segundo aqui.
Resumindo:
temos avançado consideravelmente rumo ao nosso objetivo de limpar o código que compõe o cliente. Também temos resolvido diversos bugs que encontramos no caminho, compartilhados mais abaixo. Contudo, apesar do progresso, ainda há muito a ser feito. A Campanha de Limpeza continua!
Como dissemos em nosso primeiro blog do cliente, acreditamos que a melhor forma de resolver muitos dos problemas de desempenho do cliente é consolidando e reduzindo a quantidade de plugins e aplicativos do Ember.
Para quem não sabe, plugins são ferramentas que nos permitem quebrar o código do cliente em blocos úteis. Os aplicativos do Ember auxiliam na execução da interface de usuário do cliente.
Continuamos avançando rumo ao nosso objetivo. O gráfico abaixo mostra o número total de plugins e aplicativos do Ember ao longo do tempo.
Ao ver o gráfico acima, vocês provavelmente devem ter pensado: "Tá, mas como isso influencia o desempenho do cliente?". A resposta é complicada, mas aqui vai um resumo: menos plugins e aplicativos do Ember significam um código mais eficiente. Ter um código mais simples gera um melhor desempenho do cliente e facilita a manutenção pelos desenvolvedores.
Um dos parâmetros que temos usado para avaliar o impacto do nosso trabalho é o tempo que o cliente leva para inicializar. Abaixo, temos um gráfico que mostra como essa métrica tem sido acompanhada:
Vemos que o tempo de inicialização tem se mantido estável nos últimos meses. Consideramos esse fato um sucesso moderado, em razão dos riscos inerentes ao trabalho que temos feito. Entrar em enormes blocos de código e reorganizar plugins sem cuidado pode causar diversos imprevistos, mas, até o momento, nada de ruim aconteceu.
Esperamos ver mais melhorias no tempo de inicialização já nas próximas atualizações, especialmente agora, que desenvolvemos uma nova solução que nos permite especificar de forma inteligente quais plugins são carregados ao inicializar o cliente. Acompanhe o blog do cliente mais recente para conferir uma discussão mais profunda sobre esse tópico, na seção intitulada "O problema da Affinity".
Nosso plano agora é continuar o trabalho de consolidação pelos próximos meses. Acreditamos que os benefícios da redução do número de plugins a longo prazo são bastante significativos, já que, ao limpar o código de modo geral, facilitamos a resolução de bugs, problemas de memória e travamentos.
Já que estamos falando de bugs, vamos dar uma olhadinha no que foi corrigido recentemente?
A equipe do cliente tem resolvido uma imensidão de bugs nos últimos meses. A partir da Atualização 10.13, vocês poderão acompanhar as correções de bugs do cliente em uma seção própria nas Notas de Atualização do LoL.
Enquanto isso, aqui vai uma lista, organizada por atualização, de alguns dos bugs do cliente que a equipe resolveu desde o começo do ano:
Ao trabalharmos no cliente, sempre nos fazemos a mesma pergunta: o cliente do LoL é digno de nossos jogadores?
Claramente, a resposta é não. Ao menos por enquanto.
Temos muitos bugs para corrigir, erros para evitar e problemas de engenharia muito profundos para resolver. O trabalho que começamos no início deste ano continuará até que possamos responder sim.
Sabemos que levará algum tempo até que possamos chegar lá, mas manteremos todos vocês atualizados ao longo de todo o processo! Nas próximas atualizações, queremos continuar consolidando os plugins e aplicativos do Ember, além de eliminar todos os bugs que encontrarmos em nosso caminho. Quando voltarmos para falar sobre nosso progresso, esperamos estar prontos para entrar em uma nova fase da nossa campanha, focada especificamente em melhorar a responsividade na Seleção de Campeões.
Como sempre, valeu por jogarem e, dentro de alguns meses, voltaremos em outro blog do cliente!