Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Ruby on Rails - Teknopedia
Ruby on Rails - Teknopedia
Ruby on Rails
software
Logo
Logo
GenereFramework per applicazioni web
Sviluppatore Rails Core Team.
Data prima versioneLuglio 2004[1]
Ultima versione8.1.1 (28 ottobre 2025)
Ultima beta5.2.0 (27 novembre 2017)
Sistema operativoMultipiattaforma
LinguaggioRuby
LicenzaLicenza MIT
(licenza libera)
Sito webrubyonrails.org
Modifica dati su Wikidata · Manuale

Ruby on Rails, spesso chiamato RoR o semplicemente Rails, è un framework open source server side per applicazioni web scritto in Ruby. È stato creato da David Heinemeier Hansson (noto anche come DHH) come framework derivato dallo sviluppo dell'applicazione Basecamp per l'azienda 37signals.

Ruby on Rails è un framework Model-View-Controller (MVC) concepito per facilitare lo sviluppo rapido di applicazioni web, aderendo a design pattern consolidati come Active Record, Convention over configuration (CoC) e Don't repeat yourself (DRY).

Rails è principalmente distribuito attraverso RubyGems, che è il gestore di pacchetti standard di Ruby.

Tra le piattaforme che usano o che hanno usato Ruby on Rails ci sono Airbnb, Bloomberg, Crunchbase, Dribbble,[2] indiexpo, GitHub[3], Twitch[4], Twitter[5] e Shopify.

Filosofia

[modifica | modifica wikitesto]

La progettazione e lo sviluppo di Ruby on Rails sono guidati da una serie di principi, tra cui i già citati Don't repeat yourself e Convention over configuration, derivati dalla Rails Doctrine, documento curato dal creatore David Heinemeier Hansson. L'autore stesso afferma che la Doctrine, intesa come insieme di principi, più o meno esplicitamente definiti, sia stato il motore che ha portato il framework al successo. La Rails Doctrine di fatto è un insieme di idee e di "pensieri eretici" sulla programmazione e sui programmatori software.

Tra i pilastri fondamentali della filosofia di Rails uno dei più importanti è il principio secondo il quale il framework dovrebbe essere ottimizzato per la felicità dei programmatori. Basato sul Principio della Minima Sorpresa, che già aveva guidato lo sviluppo di Ruby da parte di Matz, l'ottimizzazione per la felicità dei programmatori spinge Rails verso feature e comportamenti che rendono più piacevole il lavoro quotidiano.

Un punto simile nella dottrina è la passione per il "codice bello": anche la bellezza estetica del codice dovrebbe essere una priorità nel lavoro quotidiano.

Esempio che racchiude entrambi i principi è la possibilità di accedere ai primi elementi di un array con i metodi first, second, third, fourth e fifth. Questo è anche un esempio di "pensiero eretico" secondo l'autore: perché essere costretti ad usare costrutti tecnici come array[0] per accedere al primo elemento di un array quando è molto più bella e divertente da utilizzare la sintassi array.first?[6]

Il principio della Convention over configuration, invece, significa che il programmatore ha bisogno di metter mano alla configurazione soltanto per ciò che differisce dalle convenzioni stabilite dal framework. Ad esempio, se un modello è costituito dalla classe Post, la corrispondente tabella nel database dovrebbe chiamarsi implicitamente posts. Nel caso in cui il nome della tabella fosse diverso questo deve essere specificato manualmente nella configurazione del modello.

Don't repeat yourself, in italiano "non ripeterti", è un principio secondo il quale andrebbe evitata qualsiasi forma di ripetizione o ridondanza della logica del software. Ad esempio, utilizzando il modulo Active Record di Rails, le definizioni dei modelli non devono specificare i nomi delle colonne: il framework può estrarli direttamente dal database, dunque riportarli anche nel programma sarebbe ridondante.

Descrizione

[modifica | modifica wikitesto]

Le applicazioni Rails sono organizzate all'interno di una struttura comune di cartelle e file. Seguendo il paradigma Model View Controller l'applicazione è divisa in tre parti: Modelli, Viste e Controller.

L'accesso al modello è governato dalla libreria Active Record, che fornisce l'Object-relational mapping attraverso il pattern active record: le tabelle diventano classi, le righe corrispondono a istanze 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) attraverso metodi come Model.save, Model.update, Model.destroy, Model.find_by.

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.[7]

Cronologia versioni

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

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 (archiviato dall'url originale il 17 dicembre 2015).
  2. ^ Django vs. Ruby on Rails - The Best Choice for Mobile App Development, su appsearch.org. URL consultato il 4 ottobre 2024 (archiviato dall'url originale il 31 gennaio 2021).
  3. ^ (EN) Adam Hess, Building GitHub with Ruby and Rails, su The GitHub Blog, 6 aprile 2023. URL consultato il 4 ottobre 2024.
  4. ^ (EN) Breaking the Monolith at Twitch: Part One, su blog.twitch.tv. URL consultato il 4 ottobre 2024.
  5. ^ Once Again, Twitter Drops Ruby For Java, su readwrite.com.
  6. ^ (EN) The Rails Doctrine, su Ruby on Rails. URL consultato il 4 ottobre 2024.
  7. ^ 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).
  8. ^ "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.
  9. ^ "Rails 2.0: It's done!".. Riding Rails. Retrieved June 9, 2010.
  10. ^ 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.
  11. ^ "Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs". URL consultato l'11 dicembre 2017 (archiviato dall'url originale il 2 dicembre 2008).. Riding Rails. Retrieved June 9, 2010.
  12. ^ "Rails 2.3: Templates, Engines, Rack, Metal, much more!".. Riding Rails. Retrieved June 9, 2010.
  13. ^ "Rails 3.0: It's ready!". URL consultato l'11 dicembre 2017 (archiviato dall'url originale il 31 agosto 2010).. Riding Rails. Retrieved August 30, 2010.
  14. ^ bumping to 3.1.0, su Github.com.
  15. ^ Preparing for 3.2.0 release, su Github.com.
  16. ^ Rails 4 in 30’, su blog.wyeworks.com. URL consultato l'11 dicembre 2017 (archiviato dall'url originale il 4 dicembre 2012).
  17. ^ Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml, su weblog.rubyonrails.org. URL consultato l'11 dicembre 2017 (archiviato dall'url originale l'8 dicembre 2015).
  18. ^ Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys, su Ruby on Rails. URL consultato il 5 dicembre 2015 (archiviato dall'url originale il 9 dicembre 2015).
  19. ^ Rails 5.0: Action Cable, API mode, and so much more, su Ruby on Rails. URL consultato il 19 novembre 2016 (archiviato dall'url originale il 30 giugno 2016).
  20. ^ Rails 5.1: Loving JavaScript, System Tests, Encrypted Secrets, and more, su Ruby on Rails. URL consultato il 10 maggio 2017 (archiviato dall'url originale il 27 aprile 2017).
  21. ^ Rails 5.2.3 has been released, su Ruby on Rails. URL consultato il 9 aprile 2018.
  22. ^ 17.
  23. ^ (EN) Ruby on Rails 6.0 Release Notes, su Ruby on Rails Guides. URL consultato il 19 agosto 2019.
  24. ^ (EN) Rails 7.0: Fulfilling a vision, su Ruby on Rails. URL consultato il 30 dicembre 2021.

Voci correlate

[modifica | modifica wikitesto]
  • CakePHP
  • Radiant
  • Redmine

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su Ruby on Rails

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Sito ufficiale, su rubyonrails.org. Modifica su Wikidata
  • (EN) Blog ufficiale, su rubyonrails.org. Modifica su Wikidata
  • Ruby on Rails, su packages.debian.org. Modifica su Wikidata
  • (EN) Ruby on Rails, su GitHub. Modifica su Wikidata
  • Repository sorgenti di Ruby on Rails, su github.com. Modifica su Wikidata
  • "The Rails Doctrine". I principi che guidano lo sviluppo di Ruby on Rails.
  • Il libro "Ruby on Rails Tutorial" in italiano. URL consultato l'8 maggio 2015 (archiviato dall'url originale il 18 maggio 2015). Risorsa completa e gratuita per imparare Ruby on Rails.
  • Ruby Italia. URL consultato il 17 maggio 2018 (archiviato dall'url originale il 28 ottobre 2017). La comunità di ruby italiana.
  • (EN) All-in-one installer for Ruby on Rails, su bitnami.org. URL consultato il 7 dicembre 2012 (archiviato dall'url originale il 20 febbraio 2008).
  • Heroku. Un IDE basato sul web per gestire e programmare in locale Ruby on Rails.
  • (EN) Railscasts. Un sito in cui sono presenti centinaia di podcast di tutorial e "ricette" per imparare Rails.
  • ASCIIcasts. URL consultato il 6 aprile 2018 (archiviato dall'url originale il 28 giugno 2010). La versione testuale in italiano dei Railcasts.
V · D · M
Framework per applicazioni web
C++CppCMS · Wt
CLIASP.NET (Core · AJAX · Dynamic Data · MVC · Razor · Web Forms) · Blazor · DNN · BFC · MonoRail · OpenRasta · Umbraco · WebSharper
ColdFusionCFWheels · ColdBox Platform · ColdSpring · Fusebox · Model-Glue
Common LISPCaveman2 · CL-HTTP · Weblocks
HaskellYesod · Snap
JavaAppFuse · Flexive · Grails · GWT · ICEfaces · ItsNat · JavaServer Faces · JHipster · Jspx · JWt · OpenXava · Play · Remote Application Platform · RIFE · Seam · Sling · Spring · Stripes · Struts · Tapestry · Vaadin · Vert.x · WebWork · Wicket · WaveMaker · ZK
JavaScriptAngular/AngularJS · Backbone.js · Chaplin.js · Closure · Dojo Toolkit · Ember.js · Express.js · Ext JS · jQuery · Knockout · Meteor · MooTools · Next.js · Node.js · OpenUI5 · Prototype · React · Rico · script.aculo.us · Sencha Touch · SproutCore · Svelte · Vue.js · Wakanda
PerlCatalyst · Dancer · Mason · Maypole · Mojolicious · WebGUI
PHPCakePHP · CodeIgniter · Drupal · Fat-Free · FuelPHP · Flow · Grav · Gyroscope · Horde · Joomla! · Kohana · Laravel · Li3 · Midgard · MODX · Nette · Phalcon · PHP-Fusion · Pop PHP · PRADO · ProcessWire · Qcodo · Silex · SilverStripe · Symfony · TYPO3 · WordPress · XOOPS · Yii · Zend Framework
PythonBlueBream · CherryPy · Django · Flask · Grok · Nevow · Pyjs · Pylons · Pyramid · Quixote · TACTIC · Tornado · TurboGears · web2py · Webware · Zope 2
RubyCamping · Merb · Padrino · Ruby on Rails · Sinatra
ScalaLift · Play · Scalatra
SmalltalkAIDA/Web · Seaside
AltriVibe.d (D) · Application Express (PL/SQL) · Grails (Groovy) · Kepler (Lua) · OpenACS (Tcl) · Phoenix (Elixir) · Ash (Elixir) · SproutCore (JavaScript-Ruby) · Yaws (Erlang)
Controllo di autoritàGND (DE) 7516633-1
  Portale Internet
  Portale Telematica
Estratto da "https://it.wikipedia.org/w/index.php?title=Ruby_on_Rails&oldid=146959888"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022