Rails 3.0 FINAL, Acaba de Ser Lançado!

2010 August 29, 20:19 h

O Rails 3 foi liberado há 1 minuto! Versão 3.0 FINAL! O DHH acabou de fazer o anúncio oficial.

Foram quase 2 anos no forno, desde o anúncio da junção dos projetos Merb e Rails no dia 23 de dezembro de 2008.

Muita coisa mudou desde então. O Yehuda Katz liderou esse projeto de ponta a ponta e contou com a ajuda de diversos excelentes rubistas como nossos amigos latino americanos Emilio Tagua, Santiago Pastorino e o brasileiro José Valim. Parabéns a todos os envolvidos por este grande projeto!

Para instalar, claro, agora basta fazer o de sempre:

1
gem install rails

Indo direto ao ponto, se você ainda está aprendendo o caminho do Rails 2.3, superficialmente não mudou muita coisa. O que você vai ver logo de imediato que está diferente são os scripts de linha de comando. Por exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# criando novo projeto em Rails 2.3
rails meu_projeto

# criando novo projeto em Rails 3
rails new meu_projeto

# fazendo scaffold em Rails 2.3
script/generate scaffold Post title:string body:text

# fazendo scaffold em Rails 3
rails g scaffold Post title:stirng body:text

# abrindo o console em Rails 2.3
script/console

# abrindo o console em Rails 3
rails c

# subindo servidor em Rails 2.3
script/server

# subindo servidor em Rails 3
rails s

Além disso, você deve estar acostumado a ver as configurações do projeto em config/environment.rb mas agora isso está em config/application.rb. Tirando isso, a estrutura do projeto em si é basicamente a mesma, com os mesmos diretórios. Por padrão os templates HTML ainda são em ERB, o mapeador objeto-relacional é o ActiveRecord.

As mudanças mais drásticas de API estão no dispatcher de rotas que você configura no mesmo arquivo config/routes.rb. Os comentários lá devem ser suficientes para você entender o que mudou e as configurações antigas de rotas devem continuar funcionando.

No caso do ActiveRecord agora temos a dependência do componente Arel que permite códigos como este:

1
2
User.where(users[:name].eq('amy'))
# => SELECT * FROM users WHERE users.name = 'amy'

Mas a API do Rails 2.3, na maioria, ainda deve funcionar. Então o equivalente ao código acima seria:

1
User.all(:conditions => { :name => 'amy' })

Outra mudança drástica é um novo módulo de ActionMailer e, nesse caso, a API antiga não deve ser mais compatível.

Felizmente deu tempo da comunidade preparar dezenas de materiais, screencasts, tutoriais e documentação suficiente para qualquer um começar um projeto em Rails 3. A melhor forma de se exercitar, talvez seja pegar uma aplicação em Rails 2.3 e fazer o upgrade para Rails 3 e a melhor forma de fazer isso é comprar o material do Jeremy McNally, o Rails 3 Upgrade Handbook, que acompanha um PDF detalhado e a documentação para usar sua ferramenta open source rails_upgrade, que vai ajudá-lo a encontrar o que precisa ser modificado no seu projeto.

Se quiser apresentar o Rails 3 para alguém, a melhor de fazê-lo é usar os screencasts oficiais produzidos pela EnvyLabs, de Gregg Pollack, que foram apresentados na RailsConf deste ano.

O Ryan Bates também fez uma série em 3 partes para atualizar sua aplicação de Rails 2.3 para Rails 3:

Fora isso, o Ryan também fez screencasts apresentando rapidamente alguns dos novos componentes do Rails 3, como:

Fora isso a Engine Yard montou um site especial só para o Rails e, chamado Rails Dispatch que já colocou screencasts e material sobre:

Outro componente importante do Rails 3 é sua dependência com o Bundler, o sistema de gerenciamento de RubyGems para projetos. Com ele você consegue ter um repositório isolado de gems que não atrapalham outros projetos. Além disso ele deve tornar mais fácil instalar uma aplicação em servidor de produção, com todas as dependências corretas. Pode ser um pouco estranho no começo mas vale a pena entender como funciona. O site oficial tem documentação suficiente para entender seu funcionamento.

Além disso também temos o Rails Guides com toda a documentação em forma de Guias para facilitar seu aprendizado. Mais do que uma lista de APIs, sintaxes, o importante é entender em quais contextos usar o que. O Xavier Noria tem feito um excelente trabalho em dar manutenção em todo esse material. Espero que mais pessoas comecem a contribuir. E, claro, precisamos de uma lista de referência das APIs também e o Rails Searchable API Doc e o APIDock tem feito um excelente trabalho em tornar a consulta muito fácil para nós.

Agora, seus maiores problemas serão em checar se as rubygems ou plugins que você depende já estão compatíveis com Rails 3. Para isso, vá ao site Rails Plugins para averiguar. Se você é desenvolvedor de gems ou plugins, não deixe de atualizar essas informações lá.

Além de excelente líder técnico o Yehuda Katz também documentou muita coisa em seu próprio blog. Recomendo ler todos os artigos dele para entender muito da parte interna do Rails 3, por exemplo, estes artigos:

O Kevin Faustino compilou recentemente uma lista de websites que você pode consultar sobre Rails 3. Vale a pena conferir.

Se está interessado em livros:

Até então, nosso ambiente padrão de desenvolvimento era o Ruby 1.8.7 e Rails 2.3.8. Finalmente podemos começar a usar Ruby 1.9.2 e Rails 3.0. Isso nos trás performance de graça, mais funcionalidades e novas possibilidade. A promessa do Rails 3 foi cumprido e tudo que precisávemos foi adicionado: mais flexibilidade, mais agnosticismo, APIs modernas, segurança por padrão, modularidade.

Resumindo

Enquanto isso o desenvolvimento do que será o 3.1 já está em andamento. Versões são apenas formalidades, uma barreira psicológica para as pessoas começarem a usar. Nenhum projeto de software “acaba”. Ainda há muito a ser refinado, com o feedback de projetos em produção devem surgir novos bugs, problemas de performance, enfim, software é como vinho: vai amadurecendo com o tempo. Mas isso deve ser o suficiente para elevar o ecossistema para o próximo nível.

Divirtam-se!

tags: obsolete rails

Comments

comentários deste blog disponibilizados por Disqus