Evolução de App em Rails

7 respostas
anderson_lr

Olá pessoal,

Sou inicial em Ruby on Rails e gostaria de saber a opinião de vocês sobre um assunto. Tenho uma aplicação por exemplo que utiliza ruby 1.9.2 com rails 3.0.0. Com o passar do tempo, meu Rails e minhas gems vão ficando obsoletas. Sei que existe a possibilidade de importar minhas gems pra dentro do projeto pra que não tenha problemas futuros em não encontrar mais essas gems, mas mesmo assim, minhas gems estão vinculadas a versão do ruby. Sei também que existe o rvm pra gerenciar meus ambientes ruby, mas mesmo assim, imagine essa aplicação daqui 10 anos, vai estar desatualizada, e formatar o servidor pra instalar um linux atualizado vai ser um problema. Como vocês tratam esse problema? Gostaria de saber a opinião do pessoal.

7 Respostas

tnaires

Eu gosto muito de usar o RVM pra gerenciar isso. O que geralmente faco e congelar as versoes das gems no meu Gemfile. Quando saem versoes novas das gems, eu simplesmente crio uma nova gemset no RVM que contem as gems mais atuais e testo a aplicacao nela. Faco as modificacoes necessarias na aplicacao - se for preciso - e versiono um novo Gemfile com os numeros das novas versoes.

Se voce tem controle sobre o que instalar no seu servidor, otimo. Agora se voce estiver contratando um servidor compartilhado entao voce fica refem do que estiver instalado la. Nesse caso voce pode usar a estrategia acima para evoluir as versoes das gems conforme elas vao evoluindo no servidor.

anderson_lr

Certo. Quanto as gems acho interessante essa forma que você faz com RVM. Eu também gerencio os ambientes com ele atualmente. Mas o Rails está amarrado ao ruby e a aplicação também precisa evoluir nesse sentido. Nesse caso então, á cada mudança de versão do rails você cria um novo ambiente no rvm com o ruby atualizado (se necessário) e instala as gems necessárias com a versão do ruby atualizada, e vai controlando isso. É isso mesmo?

tnaires

Isso, porque manter varias versoes do Ruby com o RVM e moleza tambem. O RVM permite que voce crie gemsets separadas para cada implementacao do Ruby na sua maquina.

anderson_lr

E como você faz pra verificar novas atualizações de suas gems? Existe uma forma automática de fazer isso?

tnaires

Rode o comando gem outdated e ele te diz quais as que estao desatualizadas e qual a versao nova de cada uma delas.

anderson_lr

Entendi. Muito bom cara, valeu pelas dicas aí. Estava com medo de minha aplicação ficar obsoleta. Mas vi que existe formas bem legais de manter a aplicação sempre atualizada em Rails. Na verdade acho que essa ideia de sempre atualizar as bibliotecas serve pra aplicações java também né? Acho que a melhor saída é sempre manter as bibliotecas atualizadas né?

tnaires

Cara, sou ate meio obcecado com isso, por isso sou meio suspeito pra falar. Em todos os lugares que trabalhei sempre fui o chato, querendo usar a versao mais recente de tudo. Claro, nem sempre foi possivel fazer isso pois depende de cada companhia.

Criado 9 de maio de 2012
Ultima resposta 9 de mai. de 2012
Respostas 7
Participantes 2