Ruby on Rails

Ruby on Rails
software
Logo
Logo
GenereFramework per applicazioni web
Sviluppatore Rails Core Team.
Data prima versione13 dicembre 2005[1]
Ultima versione7.1.3.2 (21 febbraio 2024)
Ultima beta5.2.0 (27 novembre 2017)
Sistema operativoMultipiattaforma
LinguaggioRuby
LicenzaLicenza MIT
(licenza libera)
Sito webrubyonrails.org

Ruby on Rails, spesso chiamato RoR o semplicemente Rails, è un framework open source per applicazioni web scritto in Ruby da David Heinemeier Hansson per conto della 37signals. La sua architettura è fortemente ispirata al paradigma Model-View-Controller (MVC). I suoi obiettivi sono la semplicità e la possibilità di sviluppare applicazioni di concreto interesse con meno codice rispetto ad altri framework. Il tutto con necessità di configurazione minimale.

Rails è principalmente distribuito attraverso RubyGems, che è il formato dei pacchetti e il canale di distribuzione ufficiale per librerie ed applicazioni Ruby.

Siti famosi che usano Ruby on Rails sono Airbnb, Bloomberg, Crunchbase, Dribbble,[2] indiexpo, GitHub,[3] Twitch, Twitter,[4] ed anche Shopify.

Filosofia[modifica | modifica wikitesto]

I principi guida di Ruby on Rails comprendono "don't repeat yourself" e "convention over configuration".

"Don't repeat yourself" significa che le definizioni devono essere poste una volta soltanto. Poiché Ruby On Rails è un framework "full-stack", i componenti sono integrati in modo tale che i collegamenti fra di essi non devono essere impostati manualmente. Ad esempio in Active Record, le definizioni delle classi non devono specificare i nomi delle colonne; Ruby può estrarli direttamente dal database, dunque riportarli anche nel programma sarebbe ridondante.

"Convention over configuration" significa che il programmatore ha bisogno di metter mano alla configurazione soltanto per ciò che differisce dalle convenzioni. Ad esempio, se un modello è costituito dalla classe Post, la corrispondente tabella nel database deve chiamarsi posts, o altrimenti deve essere specificata manualmente (set_table_name "blogposts", nel caso in cui blogposts sia il nome della tabella).

Descrizione[modifica | modifica wikitesto]

Le applicazioni in Rails sono organizzate all'interno di una struttura comune di cartelle e file. Secondo il paradigma Model View Controller l'applicazione è divisa in tre parti: Modello, Viste e Controller. La libreria Active Record implementa l'Object-relational mapping in Rails, secondo lo standard consolidato: le tabelle diventano classi, le righe corrispondono a oggetti delle classi, mentre le colonne sono convertite in attributi. Le classi hanno metodi per eseguire operazioni sulle tabelle (query) o su singole righe (modifica, inserisci, cancella).
Per visualizzare i contenuti dinamici, le Viste incorporano codice Ruby dal quale è possibile costruire frammenti JavaScript eseguiti nel browser, oppure documenti XML e/o JSON con struttura che ricalca quella del codice Ruby.[5]

Cronologia versioni[modifica | modifica wikitesto]

Versioni
Versione Data Note
1.0 13 dicembre 2005 [1]
1.2 19 gennaio 2007 [6]
2.0 7 dicembre 2007 [7]
2.1 1º giugno 2008 [8]
2.2 21 novembre 2008 [9]
2.3 16 marzo 2009 [10]
3.0 29 agosto 2010 [11]
3.1 31 agosto 2011 [12]
3.2 20 gennaio 2012 [13]
4.0 25 giugno 2013 [14]
4.1 8 aprile 2014 [15]
4.2 19 dicembre 2014 [16]
5.0 30 giugno 2016 [17]
5.1 10 maggio 2017 [18]
5.2 9 aprile 2018 [19]
5.3 28 marzo 2019 [20]
6.0 15 agosto 2019 [21]
7.0 15 dicembre 2021 [22]

Note[modifica | modifica wikitesto]

  1. ^ a b (EN) David Heinemeier Hansson, Rails 1.0: Party like it's one oh oh!, su Ruby on Rails. URL consultato il 1º marzo 2017.
  2. ^ Shubham Goswami, Django vs Ruby on Rails – The Choice for Mobile App Development, su appsearch.org. URL consultato il 28 novembre 2020.
  3. ^ Adam Conrad, Episode 471: Jason Meller on Choosing the Right Tech Stack for a Greenfield Project, su SE-Radio.net, IEEE, 3 agosto 2021. URL consultato il 9 novembre 2021.
  4. ^ https://blog.twitch.tv/en/2022/03/30/breaking-the-monolith-at-twitch/#:~:text=Twitch.tv%20launched%20on%20June,initially%20worked%20well%20for%20Twitch.
  5. ^ D. Carraro e Prof. M. Moro, Il framework Web Ruby e breve introduzione alla piattaforma di e-learning Canvas (PDF), su unipd.it, Università degli Studi di Padova - Facoltà di Ingegneria, aa. 2012-2013, pp. 15-19. URL consultato il 15 maggio 2019 (archiviato il 2 novembre 2018).
  6. ^ "Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations" (archiviato dall'url originale il 2 novembre 2012).. Riding Rails. Retrieved June 9, 2010.
  7. ^ "Rails 2.0: It's done!".. Riding Rails. Retrieved June 9, 2010.
  8. ^ Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc (archiviato dall'url originale il 2 novembre 2012).. Riding Rails. Retrieved June 9, 2010.
  9. ^ "Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs".. Riding Rails. Retrieved June 9, 2010.
  10. ^ "Rails 2.3: Templates, Engines, Rack, Metal, much more!".. Riding Rails. Retrieved June 9, 2010.
  11. ^ "Rails 3.0: It's ready!".. Riding Rails. Retrieved August 30, 2010.
  12. ^ bumping to 3.1.0, su Github.com.
  13. ^ Preparing for 3.2.0 release, su Github.com.
  14. ^ Rails 4 in 30’, su blog.wyeworks.com. URL consultato l'11 dicembre 2017 (archiviato dall'url originale il 4 dicembre 2012).
  15. ^ Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml, su weblog.rubyonrails.org.
  16. ^ Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys, su Ruby on Rails. URL consultato il 5 dicembre 2015.
  17. ^ Rails 5.0: Action Cable, API mode, and so much more, su Ruby on Rails. URL consultato il 19 novembre 2016.
  18. ^ Rails 5.1: Loving JavaScript, System Tests, Encrypted Secrets, and more, su Ruby on Rails. URL consultato il 10 maggio 2017.
  19. ^ Rails 5.2.3 has been released, su Ruby on Rails. URL consultato il 9 aprile 2018.
  20. ^ 17.
  21. ^ (EN) Ruby on Rails 6.0 Release Notes, su Ruby on Rails Guides. URL consultato il 19 agosto 2019.
  22. ^ (EN) Rails 7.0: Fulfilling a vision, su Ruby on Rails. URL consultato il 30 dicembre 2021.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autoritàGND (DE7516633-1