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.
Curiosidade: Active Storage é mais um caso de código que foi extraído do Basecamp, da empresa fundada por DHH, criador do Rails.
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 headersContent-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.
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).
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 ↩
💬 Comments are temporarily disabled. Sorry for the inconvenience.