Programação

GitHub: Actualização do Ruby 2.7 corrige mais de 11.000 problemas

Se você tiver dúvidas sobre como atualizar um grande aplicativo da web para Ruby, o GitHub diz para deixá-las de lado. Mas esteja pronto para as dificuldades.

O serviço de hospedagem de código online de propriedade da Microsoft, GitHub, detalhou sua actualização massiva para a versão 2.7 da linguagem de programação Ruby, que foi implantada em produção em Julho após um projecto de meses de preparação para isso.

A mudança para Ruby 2.7 prepara o terreno para o GitHub para executar ‘deprecation free’ e remove obstáculos para actualizações futuras assim que estiverem disponíveis. O Ruby 2.7 foi lançado em Dezembro passado e precede o Ruby 3, a próxima grande actualização com lançamento programado para o final deste ano.

GitHub é um dos maiores sites construídos em Ruby e o serviço de controle de versão git online está recomendando que outros dêem o salto para Ruby 2.7 também, apesar dos desafios de estabelecer as bases para a atualização.

“Ruby 2.7 é uma actualização exclusiva porque a equipe do Ruby Core  suspendeu o comportamento dos argumentos de palavras-chave “, explica Eileen Uchitelle do GitHub.

“Com este lançamento, versões futuras do Ruby não aceitarão mais passar um hash de opções quando um método espera argumentos de palavra-chave. No GitHub, estamos comprometidos em executar sem depreciação em Ruby e Rails para evitar atrasos em actualizações futuras.”

Mas para atingir o status de isenção de depreciação no Ruby 2.7, o GitHub precisava corrigir mais de 11.000 problemas ou avisos do Ruby em 40 equipes, incluindo avisos que foram causados ​​por bibliotecas de software externas, que exigiam dezenas de actualizações no gerenciador de pacotes Ruby Gems para complementos em Ruby.

Uchitelle observa que o aplicativo Ruby do GitHub consiste em mais de 400.000 linhas de código, o que requer várias centenas de solicitações de pull por dia. Para tornar as actualizações mais fáceis, os engenheiros do GitHub configuraram o aplicativo para inicialização dupla no Ruby 2.6 e Ruby 2.7.

“Isso tornou mais fácil para nós fazer alterações compatíveis com versões anteriores, mesclá-las no branch principal e evitar a manutenção de um branch de longa execução para nossa atualização”, observa ela.

Então veio o desafio de garantir que os avisos fossem colectados e conseguisse alocar as correcções entre suas várias equipes de engenharia. Assim que os problemas foram resolvidos, as equipes afectadas receberam instruções para inicializar o aplicativo em Ruby 2.7.

“Depois de alguns meses, coordenando com 40 equipes, mais de 30 actualizações de gemas e 11.000 avisos, nosso build de CI (integração contínua) estava 100% livre de avisos. As gemas que não foram mantidas foram substituídas por gemas mantidas. Depois de consertar os avisos, alteramos nosso patch monkey para gerar erros no Ruby 2.7, o que garantiu que todo código novo entrando na base de código do GitHub fosse livre de avisos “, explica Uchitelle.

Uchitelle garante aos desenvolvedores que usam Ruby que a actualização para Ruby 2.7 vale a pena, alegando ter visto uma melhora “impressionante” no desempenho, enquanto a equipe do Ruby Core parece pronta para entregar um desempenho três vezes mais rápido no Ruby 3 . Portanto, vale a pena fazer a actualização apenas para remover obstáculos a esse lançamento.

O GitHub viu o tempo de inicialização de seu aplicativo no modo de produção cair de 90 segundos para cerca de 70 segundos, o que melhora o tempo de implantação e também dá acesso a recursos e correções de bugs.

“Além de uma melhoria no tempo de inicialização, vimos uma diminuição nas alocações de objectos, que passaram de ~ 780 mil alocações para ~ 668 mil alocações”, observa ela.

“Para qualquer empresa que esteja se perguntando se essa actualização vale a pena, a resposta é: 100%. Mesmo sem as melhorias de desempenho, ficar para trás nas actualizações de Ruby tem efeitos negativos drásticos na estabilidade de sua base de código. Actualizar Ruby oferece suporte à integridade de seu aplicativo, melhora desempenho, corrige bugs de linguagem e estrutura e orienta o futuro da linguagem. ”

Para aqueles interessados ​​em mais detalhes sobre a actualização, Uchitelle delineou algumas dicas importantes para aqueles que consideram actualizações Ruby e actualizações para a estrutura de aplicativo da web Ruby on Rails.


Ajude-nos a crescer, visite SENASNERD no Twitter FacebookInstagram . e deixe o seu gosto, para ter acesso a toda a informação em primeira mão. E se gostou do artigo não se esqueça de partilhar o mesmo com os seus amigos.

SUBSCREVA-SE NO CANAL YOUTUBE SENASNERD

Domingos Massissa

Estudante de Engª Informática, editor do portal amante do mundo NERD, onde engloba cinema tecnologia e Gamers.

Deixe uma resposta

O seu endereço de email não será publicado.

Botão Voltar ao Topo