WikiDer > Rubin auf Schienen

Ruby on Rails
Rubin auf Schienen
Logo
EntwicklerDavid Heinemeier Hansson
Veröffentlicht13. Dezember 2005
Letzte Version5.2.3 
(28. März 2019)
StatusAktiv
BetriebssystemMultiplattform
Geschrieben inRubin
KategorieRahmen
LizenzMIT-Lizenz
Versionskontrollegithub.com
Webseite(und) Projektseite
Portal  Portalsymbol  Informatik
Gratis Software

Rubin auf Schienen, auch oft RoR oder einfach Schienen genannt, ist ein Open Source-InternetanwendungRahmen, geschrieben in Rubin. Es folgt im Großen und Ganzen Modellansicht-Controller-Modell[1]. Es strebt nach Einfachheit und ermöglicht die Entwicklung praktischer Anwendungen mit weniger Code und weniger Konfiguration als andere Frameworks. Die Programmiersprache Ruby ermöglicht language Meta-Programmierung die Rails viel verwendet. Das Ergebnis ist Programmiercode, der oft leicht zu lesen und zu verstehen ist.

Geschichte

Ruby on Rails wurde von David Heinemeier Hansson aus seiner Arbeit am Basecamp-Projektmanagementpaket extrahiert.[2] Es wurde im Juli 2004 der Öffentlichkeit zugänglich gemacht. Seit der Veröffentlichung des Quellcodes Mitte 2015 haben mehr als 4.000 Entwickler zu Ruby on Rails beigetragen[3].

Philosophie

Die beiden Hauptprinzipien von Ruby on Rails sind

  • "Wiederhole dich nicht" (DRY) oder "Wiederhole dich nicht" (Aktives Aufnahmemuster) und
  • "Konvention über Konfiguration" (COC).

TROCKEN bedeutet, dass Definitionen nur einmal erstellt werden müssen. Ruby on Rails bietet umfangreiche Möglichkeiten, ein Stück einmalig an der richtigen Stelle zu programmieren, um es dann in der gesamten Anwendung an den richtigen Stellen zur Verfügung zu haben. Dadurch können Redundanzen ganz einfach vermieden werden.

COC bedeutet, dass der Programmierer nur unterschiedliche Konfigurationen vornehmen muss. Wenn beispielsweise ein Programmierer ein bestimmtes Modell auswähltKlasse erstellt genannt Computer, dann weiß Ruby on Rails, dass es am Tisch liegt Computers gehört zur Datenbank. Will der Programmierer jedoch die Tabelle? Maschinen wird für die Klasse verwendet Computer (zB um ein externes, bestehendes System anzuschließen), muss dies in der Konfiguration angegeben werden. Dies schafft automatisch konsistentere und einfachere Anwendungen, da der Programmierer zusätzliche Arbeit leisten muss, um von diesen konsistenten "Konventionen" abzuweichen.

Darüber hinaus konzentriert sich Ruby on Rails stark auf Agile Software Entwicklung[4] und verhaltensgesteuerte Entwicklung ist in der Rails-Community beliebt.

Softwarearchitektur

Wie bereits erwähnt, verwendet Rails das Model-View-Controller-Model-Prinzip. Es Model ist oft eine Tabelle einer Datenbank, bei der die bloße Benennung der Klasse ausreicht, um sie einer Tabelle zuzuordnen. Normalerweise enthält die Klassendefinition auch Verweise auf andere Tabellen und Validierungsregeln. Ein Modell muss übrigens nicht immer eine Datenbanktabelle darstellen.

Das Regler ist eine Klasse, die die Anwendungslogik enthält und die Operationen definiert, die der Benutzer aufrufen kann. Unter Verwendung der Rails-Standardeinstellungen kann ein Benutzer auf eine Operation zugreifen mit http://Servername/Controllername/Operationsname. Während der Operation werden oft Informationen gesammelt, um sie im Aussicht oder um Benutzereingaben zu verarbeiten.

Das Aussicht ist die HTML-Definition einer Controller-Operation. Mit der Embedded Ruby-Syntax kann Ruby-Code eingefügt werden, der die Ansicht im Kontext des Controller-Objekts aufruft. Eine Ansicht kann auch a sein XML-Definition oder Handhabung von a JavascriptChirurgie enthalten. Letzteres wird hauptsächlich verwendet für Ajax-Zwecke.

Eine typische Rails-Operation läuft so ab:

  1. Der Webserver empfängt eine URL und wird in einen Controller und eine Operation übersetzt. sogenanntes Routing.
  2. Ein Controller-Objekt wird erstellt. Dieses Objekt ruft die angegebene Controller-Operation auf.
  3. Während einer Controlleroperation wird eine Modelloperation durchgeführt. Normalerweise wird eine Transaktion auf einer Datenbank ausgeführt.
  4. Der Controller kann das Ergebnis des Modells verarbeiten.
  5. Die Ansicht, gleich dem Namen der Controller-Operation, wird gerendert (HTML-Generierung).
  6. Der gerenderte (HTML) Inhalt wird an den Webbrowser gesendet.

Auch hiervon sind Varianten möglich, jedoch werden immer der erste Schritt (Routing) und der zweite Schritt (Steuerungsbetrieb) durchgeführt.

Komponenten

Ruby on Rails besteht aus den folgenden Komponenten:

  • ActiveSupport - Dies enthält Ergänzungen zur Standard-Ruby-Bibliothek. Dies kann auch außerhalb von Rails verwendet werden. Es enthält zum Beispiel die UTF-8 Unterstützung, die in der standardmäßigen Ruby-Implementierung praktisch fehlt.
  • Aktiver Rekord - Diese Komponente bietet Unterstützung für Datenbanken und zugehörige Operationen. Das kann man gebrauchen Modelle einer Rails-Anwendung. Mit ActiveRecord kann ein hoher Abstraktionsgrad erreicht werden, wobei die Wahl des zugrunde liegenden Datenbanktyps kaum noch eine Rolle spielt. Regie ist weiterhin möglich SQLOperationen, aber es wird empfohlen, dies zu vermeiden, wenn man eine datenbankplattformunabhängige Anwendung entwickeln möchte. ActiveRecord kann auch außerhalb des Rails-Frameworks verwendet werden.
  • ActionController - Mit dieser Komponente können Sie Regler realisieren. Darüber hinaus enthält es unterstützende Funktionen wie Routing, Sitzungsverwaltung und Caching.
  • ActionView - Diese Komponente enthält Werkzeuge zum Ansichten realisieren. Dazu gehören zum Beispiel Funktionen zur Erstellung von Webformularen sowie Funktionalitäten zur Realisierung von Ajax-Konstruktionen.
  • Optionale Komponenten, die jedoch Teil des Frameworks oder früher Teil des Frameworks sind, sind:
    • ActionMailer (für E-Mail-Funktionalität) und
    • AktionWebService (vor dem SEIFE und XML-RPC Unterstützung). Diese Komponente ist für Rails seit Version 2.0 nicht mehr standardmäßig verfügbar.

Benutzen

Wenn man Rails installiert hat nur den Befehl Schienen verfügbar. Ermöglicht die Generierung eines Rails-Anwendungsframeworks. Dadurch entsteht eine Standard-Verzeichnisstruktur, in der bereits eine gewisse Logik definiert ist und die Orte reserviert sind, an denen die Modelle, Controller und Ansichten platziert werden können. Außerdem wurde bereits eine Struktur definiert, in der Testskripte platzieren kann. Diese Struktur kann auch durch ein anderes Framework ersetzt werden, wie z Rspec.

Das Hinzufügen von Modellen, Controllern und Ansichten kann mithilfe der generierten Skripte erfolgen, die leere Klassen und Testskripte generieren können. Zum Beispiel kann man auch ein sogenanntes Gerüst Generieren (Gerüstbau) für ein bestimmtes Modell, für das bestimmte Controller und Ansichten generiert werden. Nach dem Start des Webservers können bereits grundlegende Datenbankaktionen über einen Webbrowser ausgeführt werden.

Neben der Generierung von Strukturen und dem Starten eines Webservers lassen sich mit den genannten generierten Skripten auch Debugging mittels IRB (einer interaktiven Ruby-Shell) und Performance-Messungen durchführen. Darüber hinaus können Wartungsarbeiten mit Rake (a maintenance machen-ähnliches Tool), mit dem unter anderem sogenannte Datenbankmigrationen durchgeführt werden können.

Für Rails können mehrere Webserver verwendet werden. Eine der Möglichkeiten für Rails-Hosting ist derzeit Phusion-Passagier[5], ein Modul für Apache und nginx. Im Allgemeinen für die Entwicklung WebRICK - ein in Ruby enthaltenes Webserver-Framework - wird als Server verwendet, da Änderungen im Code mit einem Webbrowser sofort ausführbar sind. Zusätzlich zu Passenger, eine Kombination aus Mischling - ein Rails optimierter Webserver - mit Apache wenn Frontend oder lighttpd benutzt.[6]

Wissenswertes

Außerdem ist das Spiel Klingen der Legenden größtenteils in Ruby on Rails geschrieben. Ebenfalls Twitter ist teilweise in Ruby on Rails geschrieben.[8]

Siehe auch

Externe Links