Sind Rails Brick oder Rails Composer weit verbreitet?

7

Ich bin neu bei Ruby on Rails und habe Leute gesehen, die automatische Boilerplate-Generatoren wie Rails Brick oder Railer Composer zum Erstellen von Standard-Benutzerverwaltungssystemen usw. Von einem Hintergrund kommend, der nicht automatisch generiertem Code vertraut, ist es gut / legitime Praxis in Rails, solche Systeme zu verwenden. Außerdem arbeite ich an einem Projekt mit einem Startup. Ist es in Ordnung, solche Generatoren zu verwenden, und wie weit verbreitet ist diese Gewohnheit?

P.S. Mods bitte beachten Sie, dass dies keine Frage ist, die Vergleiche / Meinungen / Streitfälle fragt. Ich bin neugierig auf die allgemeine Praxis in Rails und wie oft wird dies in der Produktion verwendet.

    
user3720088 21.06.2014, 07:51
quelle

3 Antworten

17

Ich bin der Betreuer von Rails Composer , also glaube ich, dass ich diese Frage mit Autorität beantworten kann.

>

Ich respektiere (und teile) den Drang, von Grund auf zu bauen. Das ist ein gesunder Impuls. Rails enthält eine Funktion für Anwendungsvorlagen (Rails Composer ist eine Anwendungsvorlage), da die Automatisierung Zeit und Aufwand spart. Für Leute, die viele Web-Apps erstellen, kommt eine Zeit, wenn Sie sich entscheiden, den Prozess zu automatisieren.

Rails Composer bietet einen Vorteil gegenüber selbst erstellten Anwendungsvorlagen, da es Open Source ist und von Tausenden von Entwicklern mit Code-Beiträgen von vielen verwendet wird. Wenn sich Rails und Gems ändern, wird Rails Composer aktualisiert, sodass Sie jedes Mal eine aktuelle "Referenzimplementierung" erhalten. Es gibt Ihnen gut getestete Starter-Apps, die alle Kleinigkeiten integrieren, die optimiert werden müssen, wie RSpec plus Capybara und FactoryGirl, Flash-Nachrichten und Navigation mit Bootstrap oder Foundation-Frontend-Frameworks, Devise oder OmniAuth zur Authentifizierung, Pundit zur Autorisierung, und viele Utility-Edelsteine, die Entwickler gern hinzufügen (Guard, Pry, etc.). Sie können Ihren Stack auswählen (z. B. ERB, Haml oder Slim), indem Sie Optionen in dem Umfang anbieten, in dem die Community Optionen beigesteuert hat.

Wenn Sie Bedenken hinsichtlich der Sicherheit beim Ausführen eines Installationsskripts haben, ist der Code Open Source und wird von Tausenden von Rails-Entwicklern verwendet (Sie können über 2000 Watcher im GitHub-Repository sehen). Es ist eine reine Anwendungsschablone, die die Thor-Bibliothek verwendet, und obwohl theoretisch jemand Code beisteuern könnte, der Ihre Dateien manipuliert, würden wir niemals eine Pull-Anfrage wie diese akzeptieren. Rails Composer bietet nur bekannte populäre Edelsteine, so dass Sie keinem potenziellen Risiko ausgesetzt sind, unbekannte Edelsteine ​​zu verwenden.

Rails Composer ist weit verbreitet, insbesondere von Beratern, die viele Apps erstellen. Viele der führenden Beratungsfirmen haben eine interne Anwendungsvorlage (zB Thrushbot Susponders) und einige verwenden Rails Composer oder die rails_apps_composer Gem, der benutzerdefinierte Anwendungsvorlagen generiert. Entwickler, die regelmäßig an nur einer Anwendung arbeiten (z. B. bei einem großen Projekt), sind mit Anwendungsvorlagen wie Rails Composer zwar weniger vertraut, sind aber bei Entwicklern beliebt, die viele Apps starten.

Stack Overflow ist kein Platz für Meinungen. Wenn Sie also eine Reihe von Meinungen oder Diskussionen über die Vorzüge von Rails-Anwendungsvorlagen wünschen, Reddit oder Quora könnte ein besserer Ort zum Fragen sein.

Willkommen bei Stack Overflow! Ich hoffe, dass alle Ihre Fragen genau und rechtzeitig beantwortet werden.

    
Daniel Kehoe 21.06.2014, 15:44
quelle
8

Ich bin der Entwickler von Prelang , der den von Ihnen erwähnten Generatoren ähnelt. Es unterscheidet sich durch Hinzufügen von Datenmodellierung, GitHub-Integration und tiefere Konfiguration für einige Funktionen. Wie Daniel glaube ich auch, dass ich dazu eine gewisse Autorität habe und mit seiner sehr vollständigen Antwort einverstanden bin.

Um Ihre Frage zu beantworten, ist Prelang neuer, aber es wird bereits von Tausenden von Entwicklern verwendet, von Anfängern bis zu Entwickler-Shops.

Ich möchte anmerken, dass Prelang (und die anderen Builder) anders sind als das, was Sie normalerweise denken, wenn Sie "Code-Generierung" hören. Bei der Arbeit an Prelang ist es mein Ziel, "alles zu automatisieren, was ein Rails-Entwickler sowieso getan hätte". Prelang erzeugt Methoden / Code, aber meistens werden Installationsprozesse von Gems automatisiert, Konfigurationswerte eingestellt, Modelle erstellt und rails -Befehle ausgeführt. Das heißt, Prelang ist rechthaberisch in Bezug auf die verwendeten Edelsteine, aber ich habe die beliebtesten Edelsteine ​​für jedes Merkmal ausgewählt und werde die Flexibilität geben zwischen mehreren Routen zu wählen, sobald ich etwas mehr Traktion bekomme.

Prelang macht auch echte Git-Commits, so dass Sie jedes Commit durchsehen können, nachdem Ihr Projekt generiert wurde, um Ihnen einen vollständigen Einblick in Ihre Codebasis zu geben. Dies soll Bedenken hinsichtlich des generierten Codes weiter erleichtern.

Erik

    
Erik Nomitch 21.06.2014 17:06
quelle
1

Die meisten Edelsteine ​​sind heutzutage so einfach einzurichten, dass ich denke, dass Sie keinen solchen Generator brauchen werden. Schließlich ist es nur eine Frage des Geschmacks - ich benutze gerne die Befehlszeile, und ich möchte genau wissen, was in meiner Codebasis ist. Aus meiner persönlichen Erfahrung habe ich noch nie jemanden gesehen, der so etwas in der professionellen Rails-Entwicklung verwendet, aber es gibt natürlich Leute, die sie benutzen.

Der eine Fall, an den ich denken kann, wo diese Generatoren sinnvoll sind, ist, wenn Sie Projekte sehr häufig starten. In diesem Fall finde ich die vorhandenen Generatoren jedoch nicht flexibel genug. Thoughtbot zum Beispiel hat einen eigenen App-Generator namens Suspenders gebaut, der natürlich eine sehr eigensinnige Menge von Edelsteinen usw. enthält, aber es gibt ihnen diese genau was sie brauchen.

Als Nebenbemerkung zu Ihren Sicherheitsbedenken: Für mich sind die Abhängigkeitsbäume, die bei der Verwendung vieler Edelsteine ​​überbrückt werden, eine weit schlimmere Sicherheitsbedrohung. Zum Beispiel ist es in einem mittelgroßen Rails-Projekt nicht ungewöhnlich, sich auf 100+ Edelsteine ​​zu verlassen; niemand kann sie alle lesen. Sie müssen all diesen auch vertrauen.

    
Patrick Oscity 21.06.2014 08:43
quelle