Ruby auf Schienen ist ein wunderbares Open-Source-Full-Stack-Webanwendungs-Framework, das Konventionen gegenüber Konfiguration bevorzugt.
Mit wiederverwendbaren, leicht konfigurierbaren Komponenten, die normalerweise zum Erstellen von Anwendungen verwendet werden, ist das Erstellen von Anwendungen in Rails schneller und einfacher, was zu einer verbesserten Produktivität und einem höheren Geschäftswachstum führt.
Es erfreut sich bei Entwicklern wachsender Beliebtheit, da es flexibel und skalierbar ist und Webentwicklern das Schreiben und Warten von Anwendungen erleichtert.
Ruby auf Schienen legt Wert darauf, bekannte technische Muster und Prinzipien zu verwenden, um den Arbeitsaufwand beim Erstellen von Webanwendungen zu reduzieren.
Auch wenn es mehrere Methoden gibt, eine Programmierherausforderung zu lösen, gibt Ruby an, dass es sich auf häufig verwendete Muster verlässt, was die Wartung und Aktualisierung von Rails-Websites erleichtert.
Open-Source-Bibliotheken mit kleineren Rails-Codeblöcken zur Lösung bestimmter Probleme werden häufig verwendet, um den Entwicklungsaufwand zu reduzieren.
Mit Hilfe solcher Codeblöcke können Entwickler stabile, gut getestete Gems einfügen, anstatt Zeit mit dem Schreiben der gleichen Codearten zu verbringen. Eines der leistungsstärksten Werkzeuge im Werkzeugkasten eines Ruby-Programmierers ist das Modul.
Module bieten eine Struktur zum Sammeln von Ruby-Klassen, -Methoden und -Konstanten in einer einzigen, separat benannten und definierten Einheit.
Dies ist nützlich, damit Sie Konflikte mit vorhandenen Klassen, Methoden und Konstanten vermeiden und die Funktionalität von Modulen in Ihre Klassen einfügen (einmischen) können.
Erstellen eines Moduls: Das Schreiben eines Moduls ähnelt dem Schreiben einer Klasse, außer dass Sie Ihre Definition mit dem Schlüsselwort module anstelle des Schlüsselworts class beginnen.
Modul MyFirstModule
auf jeden Fall say_hello
puts “Hello”
Ende
Ende
Da wir das Modul nicht instanziieren können, müssen wir es zur Verwendung des Moduls erweitern oder in eine Klasse einbinden.
include: mischt angegebene Modulmethoden als Instanzmethoden in die Zielklasse ein
verlängern: mischt angegebene Modulmethoden als Klassenmethoden in der Zielklasse ein
Modul WiederverwendbaresModul
def module_method
puts “Module Method: Hi there!”
Ende
Ende
Klasse ClassThatIncludes
schließe das wiederverwendbare Modul ein
Ende
Klasse ClassThatExtends
Wiederverwendbares Modul erweitern
Ende
puts “Include”
ClassThatIncludes.new.module_method # “Module Method: Hi there!”
puts “Extend”
ClassThatExtends.module_method # “Module Method: Hi there!”
============================================================
Anderer Punkt zum Modul in Ruby:
1: ) Veranschaulichung der Grundlagen der Methodensuche:
Modul M
auf jeden Fall Bericht
puts “‘report’ method in module M”
Ende
Ende
Klasse C
Dazu gehört M
Ende
Klasse D < C
Ende
obj = D.neu
obj.bericht
Ausgabe:
#=> ‘report’ method in module M
Workflow: Suppose I am a Ruby object, and I’ve been sent the message “report”. I have to try to find a method called report in my method
Suchpfad. Der Bericht befindet sich, falls vorhanden, in einer Klasse oder einem Modul.
Ich bin eine Instanz einer Klasse namens D. Definiert D einen Instanzmethodenbericht?
NEIN.
Mischt sich D in irgendwelche Module ein?
NEIN.
Does D’s superclass, C, define a report instance method?
NEIN.
Mischt sich C in irgendwelche Module ein?
Ja m.
Definiert M eine Berichtsmethode?
Ja.
Good! I’ll execute that method.
2:) Dieselbe Methode mehr als einmal definieren:
Wenn Sie eine Methode zweimal innerhalb derselben Klasse definieren, hat die zweite Definition Vorrang vor der ersten. Dasselbe gilt auch für Module.
Modul InterestBearing
auf jeden Fall berechne_zins
puts “Placeholder! We’re in module InterestBearing.”
Ende
Ende
Klasse BankAccount
enthalten InterestBearing
auf jeden Fall berechne_zins
puts “Placeholder! We’re in class BankAccount.”
puts “And we’re overriding the calculate_interest method!”
Ende
Ende
account = BankAccount.new
account.calculate_interest
Ausgabe:
#=>Placeholder! We’re in class BankAccount.
#=>And we’re overriding the calculate_interest method!
3:) Mischen in zwei Modulen mit einer gleichnamigen Methode definiert:
Modul M
auf jeden Fall Bericht
puts “‘report’ method in module M”
Ende
Ende
Modul N
auf jeden Fall Bericht
puts “‘report’ method in module N”
Ende
Ende
Klasse C
Dazu gehört M
N einschließen
Ende
c = C.neu
c.bericht
Ausgabe:
#=> report’ method in module N
4:) Ein Modul mehr als einmal einbinden
Klasse C
Dazu gehört M
N einschließen
Dazu gehört M
Ende
c = C.neu
c.bericht
#=> report’ method in module N
Arbeitsablauf:
You might expect that when you ran the report method, you’d get M’s version, because M was the most recently included module.
But re-including a module doesn’t do anything. Because M already lies on the search path, the second include M instruction has no effect. N is still considered the most recently included module:
5:) Going up the method search path with super: Inside the body of a method definition, you can use the super keyword to jump up to the next-highest definition, in the method-lookup path, of the method you’re currently executing.
Modul M
auf jeden Fall Bericht
puts “‘report’ method in module M”
Ende
Ende
Klasse C
Dazu gehört M
auf jeden Fall Bericht
puts “‘report’ method in class C”
puts “About to trigger the next higher-up report method…”
super
puts “Back from the ‘super’ call.”
Ende
Ende
B
C
D
c = C.neu
c.bericht
#=> ‘report’ method in class C
About to trigger the next higher-up report method…
‘report’ method in module M Back from the ‘super’ call.
SchienenCarma hat von Anfang an an RoR gearbeitet und sich mit einer starken Belegschaft, die in RoR geschult ist, zu einem äußerst vertrauenswürdigen Namen für umfassende Ruby on Rails-Beratung, Architektur, Aufbau, Management und Erweiterung für Unternehmen auf der ganzen Welt entwickelt.
Mehr lesen :