Index
- Backend
- Dependency reduction with ‘Solid’ adapters
- Modernised resource pipeline with Propshaft
- Improvements in Active Record
- Enhanced support for SQLite in production
- Integrated authentication system
- Dockerfile management improvements
- Frontend
- Stimulus and Turbo enhancements
- Deployment
- Simplified deployment with Kamal 2 and Thruster
- Conclusion

Ruby on Rails è da sempre una tecnologia centrale nel nostro stack di sviluppo. Grazie alla sua sintassi elegante, alla filosofia "convention over configuration" e al ricca ecosistema di gemme, Rails ci ha permesso di realizzare numerosi progetti in modo rapido ed efficiente. Che si tratti di applicazioni web complesse, API scalabili o soluzioni SaaS, questo framework ha dimostrato di essere una scelta affidabile e produttiva.
L'8 novembre 2024 è stata rilasciata la versione 8 di Ruby on Rails, introducendo una serie di miglioramenti significativi in termini di performance, distribuzione e sviluppo moderno. In questo articolo esploreremo le principali novità di questa release e il loro impatto sul nostro modo di sviluppare applicazioni web.
Backend
Dependency reduction with ‘Solid’ adapters
Rails 8 vuole ridurre il numero di servizi accessori necessari per il funzionamento completo dell'applicazione. Se in passato erano necessari database come MySQL o PostgreSQL e servizi come Redis per job, caching e WebSocket, ora, grazie a una serie di nuovi adattatori basati su database è possibile gestire queste funzionalità utilizzando SQLite. Questi adattatori sono: Solid Cable, Solid Cache e Solid Queue, vediamoli meglio.
- Solid Cable sostituisce Redis come server per la gestione dei WebSocket, utilizzando un sistema di polling veloce che garantisce prestazioni simili a Redis quando usato con SQLite sullo stesso server. Inoltre, conserva i messaggi per un giorno, facilitando il debugging.
- Solid Cache prende il posto di Redis o Memcached per la memorizzazione dei cache dei frammenti HTML, utilizzando il disco anziché la RAM. Questo permette di avere una cache più ampia e durevole, con opzioni di crittografia e gestione della conservazione dei dati, agevolando la conformità alle normative sulla privacy.
- Solid Queue permette di gestire le code dei job direttamente nel database, eliminando la necessità di servizi esterni come Redis. Questo semplifica l'infrastruttura dell'applicazione e riduce la dipendenza da strumenti esterni.
Modernised resource pipeline with Propshaft
Rails 8 introduce Propshaft, una pipeline delle risorse modernizzata che sostituisce Sprockets. Propshaft offre una gestione più snella e intuitiva degli asset, migliorando la compatibilità con strumenti JavaScript contemporanei come bun, esbuild e Vite. Questo aggiornamento mira a migliorare l'efficienza dello sviluppatore e a ridurre la complessità della configurazione.
Improvements in Active Record
La nuova versione apporta miglioramenti significativi ad Active Record, il componente ORM di Rails. Questi aggiornamenti includono ottimizzazioni delle query e una gestione più efficiente delle associazioni, contribuendo a migliorare le prestazioni complessive dell'applicazione e a semplificare l'interazione con il database.
Enhanced support for SQLite in production
Rails 8 migliora il supporto per l'utilizzo di SQLite in ambienti di produzione, rendendolo una scelta più praticabile per applicazioni di piccole e medie dimensioni. Questi miglioramenti includono una gestione più robusta delle connessioni e ottimizzazioni delle prestazioni, offrendo agli sviluppatori maggiore flessibilità nella scelta del database più adatto alle loro esigenze.
Integrated authentication system
Una delle novità più attese è l'inclusione di un generatore di sistemi di autenticazione completo. Questo strumento fornisce una soluzione pronta all'uso per l'implementazione di sistemi di autenticazione basati su sessione, riducendo la necessità di implementazioni personalizzate o di ricorrere a fornitori terzi. Inoltre, Rails 8 offre un'integrazione senza soluzione di continuità con strumenti di sicurezza come 1Password, Bitwarden e LastPass, semplificando la gestione dei dati sensibili e garantendo la conformità alle normative sulla protezione dei dati come GDPR e CCPA.
Dockerfile management improvements
Rails 8 semplifica e accelera la configurazione dei Dockerfile per le applicazioni Rails, con un focus sulla prontezza per la produzione. Questi miglioramenti includono la separazione delle esigenze di sviluppo e produzione, l'uso di immagini di base sicure e il miglioramento della cache per riutilizzare i layer invariati, accelerando le build e migliorando i tempi di deployment nelle pipeline CI/CD.
Frontend
Stimulus and Turbo enhancements
Besides the many backend innovations, Rails 8 also introduced improvements for the frontend, thanks to the evolution of Stimulus and Turbo, two key technologies of the Hotwire suite.
Stimulus, the minimal JavaScript framework for Rails, has been enhanced with new APIs that make it even easier to handle events and control the DOM. Now, developers can exploit more efficient bindings, improving application interactivity without having to resort to heavier frameworks such as React or Vue.
Turbo has received significant improvements, making page loading even faster and optimising dynamic navigation. Turbo Frames and Turbo Streams have been refined to improve partial page refreshes, reducing the number of requests to the server and improving the overall performance of web applications.
These improvements enable the development of more responsive and fluid interfaces, keeping the use of customised JavaScript to a minimum and reducing the complexity of frontend code.
Stimulus, the minimal JavaScript framework for Rails, has been enhanced with new APIs that make it even easier to handle events and control the DOM. Now, developers can exploit more efficient bindings, improving application interactivity without having to resort to heavier frameworks such as React or Vue.
Turbo has received significant improvements, making page loading even faster and optimising dynamic navigation. Turbo Frames and Turbo Streams have been refined to improve partial page refreshes, reducing the number of requests to the server and improving the overall performance of web applications.
These improvements enable the development of more responsive and fluid interfaces, keeping the use of customised JavaScript to a minimum and reducing the complexity of frontend code.
Deployment
Simplified deployment with Kamal 2 and Thruster
Una delle principali novità di Rails 8 riguarda l'integrazione di Kamal 2. Si tratta di uno strumento che facilita il deployment delle applicazioni su qualsiasi server, che si tratti di una macchina virtuale nel cloud o un hardware locale. Grazie a questa integrazione è possibile configurare un server Linux per ospitare l'applicazione, richiedendo solo gli indirizzi IP dei server e una chiave SSH. Questo processo permette di mettere in produzione un'applicazione in meno di due minuti.
Inoltre, Rails 8 include un Dockerfile ottimizzato che incorpora Thruster, Rails 8 include anche un Dockerfile ottimizzato che utilizza Thruster, un proxy che lavora davanti al server web Puma. Thruster migliora le prestazioni grazie a X-Sendfile, caching e compressione degli asset, eliminando la necessità di usare server web aggiuntivi come Nginx. Questo significa che il container standard di Rails può ricevere traffico immediatamente.
Inoltre, Kamal 2 introduce Kamal Proxy, un proxy personalizzato che sostituisce alternative come Traefik. Kamal Proxy assicura aggiornamenti senza interruzioni, certificati SSL automatici con Let's Encrypt e supporto per più applicazioni su un unico server senza configurazioni complicate.
Inoltre, Rails 8 include un Dockerfile ottimizzato che incorpora Thruster, Rails 8 include anche un Dockerfile ottimizzato che utilizza Thruster, un proxy che lavora davanti al server web Puma. Thruster migliora le prestazioni grazie a X-Sendfile, caching e compressione degli asset, eliminando la necessità di usare server web aggiuntivi come Nginx. Questo significa che il container standard di Rails può ricevere traffico immediatamente.
Inoltre, Kamal 2 introduce Kamal Proxy, un proxy personalizzato che sostituisce alternative come Traefik. Kamal Proxy assicura aggiornamenti senza interruzioni, certificati SSL automatici con Let's Encrypt e supporto per più applicazioni su un unico server senza configurazioni complicate.
Conclusion
Rails 8 introduce una serie di aggiornamenti significativi che semplificano lo sviluppo, migliorano le prestazioni e aumentano la sicurezza delle applicazioni. Se stai cercando un partner affidabile per sviluppare il tuo progetto in Ruby on Rails o per la manutenzione della tua applicazione, DevInterface può offrirti esperienza, supporto e soluzioni su misura. Contattaci per scoprire come possiamo aiutarti a sfruttare al meglio le potenzialità di Rails 8!