Rails 5.2 acaba de ser lançado; confira o que há de novo!
Grandes novidades nesta nova versão!
A nova versão do Rails estava em beta (e rc1) desde novembro do ano passado
e agora está finalmente disponível para todos!
Foram quase 5000 commits (!)
de 440 desenvolvedores,
incluindo uma pequena contribuição deste que vos escreve.
Algumas novidades presentes nesta nova versão:
Active Storage
Sem dúvidas, o destaque da vez.
Desde quando foi lançado, o Ruby on Rails tem a premissa de ser um framework completo.
O Active Storage foi adicionado ao Rails justamente para suprir uma funcionalidade a qual antes dependia de ferramentas de terceiros: upload de arquivos.
O framework traz suporte nativo aos serviços Amazon S3, Google Cloud Storage e Microsoft Azure Storage.
A abordagem
utilizada simplifica a tarefa e vem com recursos bacanas, como
uploads direto para a nuvem
(sem passar pelo seu servidor antes) e criação de
thumbnails
(miniaturas) de imagens, PDFs e até mesmo vídeos.
Ah, eu gravei uma série de vídeos sobre Active Storage! 😉
HTTP/2 Early Hints
Rails agora suporta uma das coisas mais legais do HTTP/2:
poder instruir o servidor (como o Puma, que já suporta isso)
para enviar antecipadamente arquivos JS e CSS. Isso se traduz em uma entrega mais rápida das páginas.
Boot 50% mais rápido
A gem Bootsnap reduz o tempo para subir um servidor em 50%
e a partir do Rails 5.2, ela é adicionada por padrão em novos projetos.
Você também pode usá-la em projetos usando versões antigas do Rails, basta adicioná-la ao seu
Gemfile
.CSP (Content Security Policy)
Uma nova DSL2 foi adicionada para configurar headers
Content-Security-Policy
,
através da qual você poderá melhorar a segurança da sua aplicação.Credentials
O arquivo de configuração
secrets.yml
foi criado no Rails 4.1
e transformado em um arquivo criptografado no Rails 5.1.
Só que isso sempre foi meio confuso e alguns desenvolvedores não sabiam exatamente
como (ou por qual motivo) usar, já que envvars3 resolviam o problema.Para tentar resolver a confusão, agora foi criado o conceito de Credentials,
descontinuando o suporte ao
secret.yml
(e sua versão criptografada).Se isso resolverá mesmo o problema e cairá no gosto dos desenvolvedores, só o tempo dirá!
Suporte à gem Webpacker 3.0
Rails vem adotando soluções modernas para uso de JavaScript e manter uma boa integração
com a gem Webpacker prova isso mais uma vez.
Redis Cache Store
Suporte nativo à cache usando Redis. Você encontra mais informações no
pull request em que esta funcionalidade foi adicionada.
O que mais?
Obviamente, existe mais coisas que mudaram/evoluíram além dos destaques que listei acima.
As notas de liberação
contém algumas dessas mudanças menos relevantes, caso você esteja interessado.
Como atualizar?
Atualmente, atualizar um projeto para uma nova versão do Rails é uma tarefa relativamente tranquila
(principalmente se comparada com as transições da versão 2 para a 3).
Eis o guia oficial para atualizar.
Uma boa cobertura de testes automatizados é altamente recomendada!
Rails 6?
Seguindo a tradição, essa será a última versão da série
5.*
.
O branch master
do repositório do Rails já contém mudanças que só virão no Rails 6,
o qual provavelmente veremos daqui a aproximadamente 1 ano e meio, se o histórico de lançamentos for similar aos que tivemos até hoje.Footnotes
-
Release Candidates: versões beta com potencial para serem a versão final ↩
-
Domain-specific language (Linguagem de domínio específico): métodos ou códigos específicos dedicados à um domínio de problema particular ↩
-
Environment Variables (variáveis de ambiente): configurações disponíveis "globalmente" em um computador ou servidor ↩