Skip to content
Natuurondernemer
    Junho 15, 2020 by admin

    Um guia geral para actualizar o Ruby nas suas aplicações Rails

    Um guia geral para actualizar o Ruby nas suas aplicações Rails
    Junho 15, 2020 by admin
    Por Aaron Sumner, 18 de Dezembro de 2017. Ficheiro em: segurança, actualização, ruby.

    Estamos a meio de Dezembro, o que significa que uma nova versão do Ruby será lançada em apenas alguns dias. Mesmo que não pretenda actualizar as suas aplicações Rails para a versão mais recente no primeiro dia, nunca é má altura para começar a planear a sua próxima actualização.

    Porquê actualizar Ruby?

    Cada ano, a equipa central do Ruby introduz novas funcionalidades para fazer avançar a linguagem. Por vezes, estas são novas construções de programação para tornar a sua vida como programador mais fácil. Outras vezes, estas alterações resultam em ganhos de desempenho e fiabilidade geral. Não é óptimo quando um pequeno trabalho de actualização pode tornar a sua aplicação Rails mais rápida, ou quando uma nova funcionalidade da linguagem simplifica uma abordagem anteriormente complexa a uma ou duas linhas simples de código?

    Lançamento de Ruby ao longo do ano também fornece importantes actualizações de segurança para a linguagem, que se infiltram nas suas aplicações e nas pessoas que as utilizam. Assegurar que todas as camadas da sua aplicação são seguras é tão importante como evitar a injecção de SQL e as vulnerabilidades de scripts cruzados no local. Acompanhar as versões Ruby suportadas é fundamental.

    E por vezes, a sua mão é forçada por uma dependência, ou uma dependência dessa dependência. Talvez tenha estado lá – quer integrar uma biblioteca de terceiros na sua aplicação, mas não pode, porque requer um Ruby mais recente do que o que está actualmente em execução. Despende o seu tempo a forking e back-porting da biblioteca para suportar a sua base de códigos mais antiga, ou actualiza a sua base de códigos para aproveitar o actual ecossistema Ruby?

    Quando actualizar Ruby

    Novas versões principais (por exemplo, 2.2, 2.3, e 2.4) são tradicionalmente lançadas a 25 de Dezembro de cada ano. Olhando para as últimas versões principais de Ruby, pode-se esperar apoio de segurança para um dado Ruby durante cerca de três anos após o seu lançamento inicial. Se puder, faça a actualização do seu Ruby antes que essa janela de suporte expire.

    Even em projectos conservadores, estou confortável a actualizar para uma dada versão do Ruby cerca de um ano após o seu lançamento inicial. Isso dá tempo para correcções de bugs a essa versão, bem como para os autores de gemas fazerem quaisquer actualizações necessárias para suportar um Ruby mais recente.

    Quando não actualizar o Ruby

    Uma palavra de conselho: Não actualize as versões Ruby ao mesmo tempo que uma actualização da versão Rails! Mesmo que a versão do Rails que está a actualizar requeira uma certa versão Ruby, actualize e liberte a sua versão Ruby primeiro – depois faça a actualização do Rails. Está apto a tornar a sua actualização global muito mais difícil se tentar fazer tudo ao mesmo tempo, versus em passos.

    Tive sorte a actualizar várias versões ao mesmo tempo – por exemplo, de Ruby 2.1 para Ruby 2.4, mas outras tentativas para o fazer causaram-me problemas, como passar de Ruby 1.8 para Ruby 2.0. Em caso de dúvida, dividir a actualização em pedaços mais pequenos. Quase sempre encontro actualizações incrementais para ir mais facilmente do que as abordagens por atacado.

    Ponta-te pronto

    Antes de fazer qualquer actualização, é uma boa ideia ler sobre o que há de novo – características, correcções, depreciações, e coisas que simplesmente já não funcionam de todo. As versões prévias do Rubies começam a sair com meses de antecedência, e muitos blogueiros dedicam tempo a explorar o que há de novo – por isso procure o que há de novo no Ruby x.y para ter uma noção do que os seus colegas Rubyistas estão a encontrar. O feed de notícias no site oficial Ruby também publica anúncios de cada lançamento, juntamente com o que há de novo neles.

    E, como qualquer actualização, vai querer um conjunto de testes o mais completo possível para a sua aplicação – mesmo que o seu próprio código de aplicação não exija muitas alterações para estar em conformidade com o novo Ruby, as suas dependências podem ter passado por alterações mais profundas. Ou talvez tenham problemas com a nova versão Ruby. Demore um pouco de tempo a rever a sua situação de teste. Use o SimpleCov para ajudar a identificar áreas que são leves na cobertura. Tente preencher as lacunas, ou pelo menos testar manualmente essas áreas um pouco mais do que o habitual. (E se precisar de ajuda para começar a testar, conheço um livro bastante bom sobre o assunto, wink wink.)

    Como actualizar Ruby

    Para começar, instale o Ruby alvo na sua configuração de desenvolvimento, usando o seu gestor de versão Ruby de escolha (ou através de uma imagem Docker, se for essa a sua coisa). Ver instruções para RVM, rbenv, e chruby para detalhes.

    Agora é uma boa altura para especificar também a nova versão Ruby no seu .ruby-version ficheiro, e/ou no seu Gemfile (preferido por Heroku). Seja como for, é provável que esteja a substituir um valor antigo por um novo. Verifique a alteração recarregando o directório:

    $ cd .$ ruby -vruby 2.4.2p198 (2017-09-14 revision 59899) 

    Next, instale o Rails e as outras dependências da sua aplicação no novo ambiente Ruby:

    $ bundle install

    É aqui que as coisas podem ficar complicadas, especialmente se estiver a incluir qualquer versão gem que não suporte o novo Ruby. Abordei esta duas formas diferentes em projectos de actualização. Em alguns casos, actualizei gemas individuais até que todas as dependências possam ser instaladas. Com as novas versões do Bundler, o modo de actualização conservador, que impede que as dependências partilhadas também sejam actualizadas, funcionou bem para mim.

    $ bundle update --conservative

    Nalguns casos, pode acabar por precisar de usar o modo conservador, depois actualizando gemas individuais para abordar outras alterações. Por exemplo, quando actualizei uma aplicação para Ruby 2.4 no início deste ano, tive de actualizar separadamente a gema do formulário_simples para tratar de uma depreciação.

    Com tudo instalado, está pronto para executar o seu conjunto de teste! Primeiro, certifique-se de que arranca, depois preste atenção a falhas e avisos de depreciação. Se ler no novo Ruby para o qual está a actualizar, então as falhas e avisos devem parecer familiares, e esperemos que tenha um caminho claro para os abordar. Não ignore os avisos de desvalorização! Os avisos de hoje são os fracassos de amanhã. Tome o tempo necessário para limpar agora, enquanto está na espessura de uma actualização Ruby.

    Com um conjunto de testes de aprovação, livre de avisos de depreciação, gosto de executar a aplicação localmente, e ligar a consola Rails, e verificar se existem outros avisos de depreciação no registo de desenvolvimento. Isto é especialmente importante se o SimpleCov encontrou lacunas na sua cobertura de teste. Se notar novos avisos (ou falhas) que não foram revelados nos seus testes existentes, faça o seu melhor para adicionar cobertura agora.

    Congratulações, a sua aplicação é actualizada para um Ruby mais recente, suportado! Os seus próximos passos irão variar, dependendo de como e onde a sua aplicação for implantada no mundo. Os fornecedores de plataforma como serviço, como Heroku, e as implantações baseadas em contentores tornam isto relativamente simples. Se tiver os seus próprios servidores, provavelmente terá um pouco mais de trabalho a fazer, como instalar Ruby, Rails, e outras dependências nos servidores em questão. Isso está fora do âmbito deste artigo.

    Após ser feito, no entanto, pode dormir um pouco mais facilmente, sabendo que a sua aplicação Rails está a utilizar um Ruby moderno. Obrigado por ler!

    Previous articleAtracagem (cão)Next article Anatomia de um Arco Composto

    Deixe uma resposta Cancelar resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *

    Artigos recentes

    • Como montar um mineiro Bitcoin ASIC
    • Chris Martin tem aniversário na Disneylândia com Dakota Johnson
    • O que é um Site de Superfundo?
    • Echolalia: Os factos para além da “conversa de papagaio”, escrita, e eco
    • Lord of the Flies Quotes
    • Um Guia para Principiantes de Pegging
    • 42 Receitas de Sopa de Crockpot Saudável
    • 3 riscos surpreendentes de má postura
    • Tina Fey Biografia
    • O que são Correntes Oceânicas?

    Arquivo

    • Abril 2021
    • Março 2021
    • Fevereiro 2021
    • Janeiro 2021
    • Dezembro 2020
    • Novembro 2020
    • Outubro 2020
    • Setembro 2020
    • Agosto 2020
    • Julho 2020
    • Junho 2020
    • Maio 2020
    • Abril 2020
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski

    Meta

    • Iniciar sessão
    • Feed de entradas
    • Feed de comentários
    • WordPress.org
    Posterity WordPress Theme