Frage

arbeite ich zur Zeit mit Groovy und Grails. Während Groovy recht ist geradlinig, da es im Grunde Java, kann ich nicht sagen, dass ich Grails grok. Ich las, dass Groovy Grails ist wie Ruby Ruby on Rails ist, aber was bedeutet das?

War es hilfreich?

Lösung

Um die Verwirrung mit der Metapher Adresse (obwohl es mit anderen Worten unter Ihrer Frage beantwortet wurde):

Groovy ist Grails als Ruby Ruby on Rails ist, aber was bedeutet das?

Grails war ein Web-Framework gebaut an / mit dem Groovy Programmiersprache die gleiche Sache für Groovy zu tun, dass Rails (eine Web-Framework Ruby) hat für Ruby.


Was bedeutet es, „auf Schienen“ zu sein?

Die Antwort auf diese kommt es auf die Essenz dieses Web-Frameworks.

Diese Web-Frameworks (Grails & Rails) auf der Prämisse der „Konvention über Konfiguration“ gebaut, was bedeutet, dass gemeinsame Konventionen Web-Anwendungen zu entwickeln, um eine höhere Produktivität und mehr wartbar Anwendungen führen kann (dies ist eine grobe Verallgemeinerung). Und durch eine Konvention zu definieren und das Festhalten an, dass Sie werden feststellen, dass Ihre Anwendungen sind einfach zu erzeugen und schnell zum Laufen.

Dies ist, was es mir bedeutet „auf Schienen“, wie ein Zug zu sein. Wenn eine neue Zugstrecke entwickelt wird, gibt es keine Sorgen über die Art und Weise neu zu erfinden der Zug von einem Ort zum anderen bekommen, es ist seit Jahrzehnten durch eine einzige Konvention gelöst: Schienen. So wie die Tracks auf einer Zugstrecke seinem Weg von zwei Standorten beschränken, Kongressbasierte Web-Frameworks verwenden Konventionen der Flexibilität der Anwendungsentwickler, so dass sie auf das, was das Wesentliche Geschäfts Problem ihrer Anwendung konzentrieren können.

Ein wichtiger Vorteil einer Konvention für einen Web-Framework ist, dass der Web-Framework jetzt Annahmen darüber, wie bestimmte Schichten des Anwendung Haken zusammen machen kann. In Rails, kann man in der Regel davon ausgehen, dass, wenn man die Datenbanktabelle eine Vielzahl von Namen, kartiert die Activerecord-Klasse dieser Tabelle werden die entsprechenden singulären Namen haben. Folglich Rails Codegeneratoren, die Daten-Mapping-Informationen verbrauchen können, um Datenzugriffscode wie dynamischen finders, Migrationen, lazy belastete Assoziation Traversierungen zu erzeugen usw. Dieser Datenzugriffscode in einem konfigurationsbasierten Rahmen ist aufwendig, um Code von Hand.

Andere Tipps

Einige Leute haben die technischen Einzelheiten der erwähnten was macht Rails / Grails, was sie sind. Einige Leute haben auch als die „Schienen“ in Rails / Grails „Konvention über Konfiguration“ genannt. Dies ist immer näher an die Wahrheit. Aber dies ist nur ein Merkmal der breiteren Philisophy von Rails, das ist das Konzept der opinionated Software .

Stur Software kann nicht nur in technischen Begriffen beschrieben werden; es ist eine Philosophie; ein Ethos; eine Haltung . Wie es oder es hassen , dass ist das, was im Herzen von Rails ist.

Hier ist ein exceprt von einem 2005 Interview mit David Heinemeier Hansson , dem Schöpfer von Rails:

  

Rails ist opinionated Software. Es meidet die alten Ideale der Software in einer Grundstellung bringen. Einer dieser Ideale ist flexibilitäts die Vorstellung, dass wir versuchen sollten, so viele Ansätze wie möglich gerecht zu werden, dass wir kein Urteil über eine Form der Entwicklung über den anderen wechseln sollte. Nun, Rails tut, und ich glaube, das ist, warum es funktioniert.

     

Mit Rails, handeln Sie Flexibilität bei der Infrastrukturebene Flexibilität auf Anwendungsebene zu gewinnen. Wenn Sie glücklich sind entlang der goldenen Weg zur Arbeit, die ich in Rails eingebettet haben, können Sie eine riesige Belohnung in Bezug auf die Produktivität gewinnen, dass Sie mehr tun können, früher und besser auf der Anwendungsebene.

Es gibt auch ein späteres Interview, dass weitere das Thema untersucht.

So ‚auf Schienen‘ zu sein, ist eine Metapher für ‚eigenwillig‘ werden, weshalb es benannt ist, wie es ist. Das und die Tatsache, dass „Ruby on Rails“ ist alliteratve, die jeder Journalist oder Schriftsteller wird Ihnen sagen, ist ein sicherer Weg, die Aufmerksamkeit der Menschen von Einhaken.

Ich denke, ein Framework, das „Schienen-like“ bezieht sich auf mehrere Dinge sein will:

  • Modell-Ebene: eine AR-gemusterte ORM (statt DataMapper), Migrationen oder ein automatisiertes Schema und Modell-Layer-Management, Fremdschlüssel in der Anwendung Handling (nicht in Datenbank-Schema, und auch nicht gespeicherten Prozeduren oder reine DBMS-Logik)

  • TDD ermutigt: automatisch generierte Skelette für Komponententests,

  • Namenskonventionen Verbindungsdatenbanktabelle und Modellnamen, Controller und Ansichtsaktionen und HTML-Templates

  • rationalisiert Weg Erkennung und Routenerzeugungsschema

  • Betonung der REST-Architektur

  • Integration mit AJAX-Libs: RJS, Prototyp und scriptaculous

Rails ist ein Framework für die Entwicklung von Web-Anwendungen mit einem Datenbank-Backend. Ich denke, dass der Name ursprünglich ein Wortspiel war. Ein Zug kann man irgendwo nehmen wirklich schnell, aber nur dort, wo die Schienen gehen.

auf Schienen bedeutet, dass Sie nicht kontrollieren können, wohin Sie gehen. Es bedeutet, können Sie nur gehen, wo die Schienen verlegt wurden. Jeder Versuch, zu gehen, wo die Leute, die die Schienen gelegt haben Sie nicht davon aus zu gehen, wird zu Frustration führen.

Es ist ein Automobil-Ausdruck. Wenn ein Auto besonders gut behandelt, es sagte zu „Ecke wie das Fahren auf Schienen“ (das heißt es gibt Ihnen eine hervorragende Kontrolle).

Ich weiß nicht, ob das ist, wo die Schienen Menschen diesen Namen bekam, aber das ist, wie ich es interpretiert.

Wirklich kurze und einfache Antwort. Konvention über Konfiguration

Wie oben gesagt, Rails und Grails bieten Konventionen für die Entwicklung von Webanwendungen - Ihre Stücke eine bestimmte Art und Weise zu benennen und sie an den richtigen Stellen setzen erhalten Sie Ihre Anwendung standardmäßig ohne zusätzliche Konfiguration arbeiten. Wenn Sie von der Konvention abgewichen werden möchten, können Sie Ihren Weg dort konfigurieren.

Ruby und Groovy sind Sprachen.

Ruby on Rails ist ein bahnbrechendes Webapp Rahmen. Siehe hervorragende Antworten auf eigenwillige Software oben.

Als eine Frage der Geschichte, ein Arbeitstitel für einen Groovy Webapp Rahmen war Groovy on Rails . Doch die RoR Gemeinschaft beanstandet. Das Team entschied Grails statt.

Es ist eine Metapher, und ich hätte fast gesagt, dass Bedürfnisse zu erklären. Wie auch immer, es ist eine sehr gute Metapher für das, was Ruby on Rails tut. Es macht es extrem einfach (gehen Sie zu) die gemeinsame Sachen zu tun, i. e. Prüfung, Validierung, Bereitstellung MVC.

Ich bin nicht einverstanden mit den anderen Kommentaren von „auf Schienen ist eine Philosophie über Konvention über Konfiguration“ und so weiter.

Während Schienen auf diese Philosophien anhaftet, "Ruby on Rails" ist der Name eines Web-Framework. Nicht mehr, nicht weniger. Es bezieht sich nicht auf eine bestimmte „on-railsness“ darüber, es ist nur ein Markenname in der gleichen Art und Weise, die McDonalds ist ein Markenname.

Wenn jemand einen anderen Rahmen schreibt und nennt es „Python on Rails“ dann gibt es eine andere Marke sein. Wenn nicht, „XYZ auf Schienen“ bedeutet nur, dass die Menschen verwirrt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top