Warum Ruby on Rails gut ist und wie es die Entwicklung beschleunigt



Dieser Beitrag ist eine Übersetzung eines Artikels des Programmierers Krzysztof Kopidlowski, der sich mit den Vorteilen von Ruby on Rails befasst. Das Material wird in erster Linie für Programmieranfänger und erst dann für Profis von Interesse sein.

Ruby on Rails kann Ihnen die Zeit sparen, die Sie normalerweise für die Entwicklung aufwenden. Nur weil bei Verwendung dieses Frameworks der Code geringer ist und die Funktionalität gleich bleibt.

Skillbox empfiehlt: Praktikum "Profession Web Developer" .

Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.

Von Java zu Ruby


Für mich ist die Arbeit mit Ruby eine echte Zeitersparnis. Ich kann mich auf Methoden und Logik konzentrieren, anstatt Zeile für Zeile mit viel Code herumzuspielen. Früher dachte ich, Java sei ein Game Changer, aber nachdem ich Ruby on Rails kennengelernt hatte, war ich noch beeindruckter.

Seit ungefähr einem Jahr schreibe ich in Java und mache Backend-Entwicklung. Es scheint mir, dass jeder Programmierer, der mit dieser Sprache arbeitet, verstehen wird, wovon ich spreche. Angenommen, Sie möchten einen Endpunkt schreiben, um eine ZIP-Datei zurückzugeben. Sie können dieses Problem ohne besondere Probleme lösen, dies erfordert jedoch Hunderte von Codezeilen.

Aber was ist, wenn ich Ihnen sage, dass auf ein paar Dutzend Zeilen verzichtet werden kann?



Dies ist Ruby - eine objektorientierte, dynamische, reflektierende, interpretierte Programmiersprache auf hoher Ebene. Es verfügt über eine betriebssystemunabhängige Multithreading-Implementierung, eine starke dynamische Typisierung, einen Garbage Collector und viele andere Funktionen. Es hat viele Webanwendungen geschrieben, einschließlich GitHub und Twitter.

Ruby reduziert den Code


Vielleicht fragen Sie sich, wie es im Allgemeinen möglich ist, die Codemenge auf mehrere zehn Zeilen zu reduzieren, während die oben angegebene Logik beibehalten wird. Dies ist wirklich möglich, und wir sprechen noch nicht über Frameworks, sondern über reine Sprache.

Wenn Sie beispielsweise ein Array haben und alle Elemente um 2 erhöhen und sie dann in Java in umgekehrter Reihenfolge zurückgeben möchten, sieht der Code folgendermaßen aus (über die List-Oberfläche):

import java.util.*; import java.util.stream.Stream; import static java.util.Collections.reverseOrder; import static java.util.stream.Collectors.toList; public class MyClass { public static void main(String args[]) { List<Integer> list = Stream.of(1, 2, 3) .map(val -> val + 2) .sorted(reverseOrder()) .collect(toList()); list.forEach(System.out::println); } } 

Das gleiche in Ruby würde so aussehen:

array = Array.new (5,2)
array.map {| x | x + 2} .reverse

Der Unterschied ist offensichtlich. Und Sie müssen keine Klassen importieren.

Dynamische Eingabe


Nachdem wir sichergestellt haben, dass es wirklich nicht zu viele Codezeilen geben kann, können wir darüber nachdenken, dass der Variablentyp im obigen Beispiel nicht festgelegt ist. Dies ist wahr - Tatsache ist, dass in Ruby alle Variablen dynamisch typisiert werden.

Wenn Sie eine Methode schreiben, die zwei Parameter akzeptiert, müssen Sie deren Typen nicht angeben, sondern können sich nur auf die Logik konzentrieren. Ergebnis: weniger Code, mehr Qualität und sauberer.

Ruby hat auch viele proprietäre Methoden, die das Codieren beschleunigen. Beim Schreiben von Programmen verwende ich meistens die Hash-Konvertierung in Array und dann in JSON. In Ruby kann ich es mit nur einer Zeile ausführen!

Auf Schienen


Das beliebteste Ruby-Framework ist Rails. Es bietet ungefähr die gleiche Funktionalität für eine Sprache wie Spring für Java. Ich möchte einige meiner Erkenntnisse mitteilen, die für Sie nützlich sein könnten.

Alle Endpunkte an einem Ort

Eines der Dinge, die ich an Rails mag, ist, dass ich nur eine Datei benötige, um alle meine Endpunkte zu deklarieren. Ich kann immer den Terminalbefehl $ rake route verwenden, um sie zu sehen. Dies ist eine großartige Option für große Projekte, wenn Sie etwas tun müssen, das auf dem basiert, was bereits geschrieben wurde.

Darüber hinaus können Sie Ihre Endpunkte in Gruppen unterteilen. Wenn Sie beispielsweise ein Benutzermodell haben, können Sie die Pfade für alle Mitglieder festlegen, sodass jeder Endpunkt automatisch eine eigene Kennung erhält.

Sie müssen nicht unterschiedliche Parameter für dieselben Endpunkte verwenden. In Rails können Sie standardmäßig alle Parameter an den Endpunkt übergeben und nur diejenigen überprüfen, die Sie im Controller verwenden möchten.

def user_params
params.require (: Benutzer) .permit (: Name,: Nachname,: Geburtsdatum,: Avatar)
Ende

Schienen-Datenbanken

Alle Migrationen werden hier in der Anwendung registriert. Wenn Sie also eine Datenbank auf verschiedenen Geräten einrichten, müssen Sie nur einen Befehl ausführen: $ bundle rake db: setup. Daher wird zum Konfigurieren oder Verwenden der Datenbank einfach kein externer Client benötigt.

Und nein, die Datenbank, die Sie erstellt und auf ein anderes Gerät übertragen haben, ist nicht leer: In Ihrer Rails-Anwendung befindet sich eine Datei namens seeds.rb, in der Sie alle Datensätze für verschiedene Modelle angeben können, die für das Funktionieren der Anwendung erforderlich sind. Infolgedessen benötigt das Modell nur wenige Codezeilen.

Der Befehl $ bundle rake db: setup hat drei Funktionen:

  • Erstellt eine Datenbank, falls diese noch nicht vorhanden ist.
  • Führt alle Migrationen aus.
  • Gibt alle Quelldaten aus Ihrer Seed-Datei ein.

Der Code ist wirklich sauber: ActiveRecords schreibt einfach die Methoden, die Sie implementieren müssen, nicht die Attribute.

Im Hibernate-Framework für Java müssen Sie alle Attribute mit Anmerkungen registrieren und dann Setter für die Attribute festlegen, die Sie ändern müssen. In diesem Fall erhalten Sie eine große Menge Code in der Ausgabe.

In Rails nimmt dasselbe eine Zeile ein. Das DB-Schema wird in der Datei schema.rb gespeichert, die beim Start der Migration automatisch erstellt wird. Und die Klasse benötigt keine Setter oder Attribute. Wenn letztere benötigt werden, reicht es aus, Folgendes zu schreiben: Model.attribute - und das ist alles.

Wie oben erwähnt, können Sie sich bei Rails auf die Logik und Methoden Ihres Projekts konzentrieren und nicht auf Code.



Fazit


Ruby on Rails bietet Ihnen leistungsstarke Tools wie dynamisches Tippen oder Byebugging, die den Programmierprozess ziemlich schnell beschleunigen.

Wenn Sie einen Kurs in der Entwicklung von Webanwendungen belegen möchten, schreiben Sie unbedingt eine kleine Rails-Anwendung, um zu verstehen, wie sie funktioniert. Es ist nie zu spät, etwas Neues zu lernen - auch wenn Sie traditionelle Werkzeuge bevorzugen.

Source: https://habr.com/ru/post/de428487/


All Articles