Ich weiß, dass dies ein Duplikat ist , aber die Grails-Welt hat sich erheblich weiterentwickelt, seit diese Frage vor mehr als einem Jahr gestellt wurde, ebenso wie die IDE-Unterstützung in Eclipse. Schließen Sie sie also nicht einfach blind.
Ich dachte, die Antwort wäre ja und habe ein neues Projekt mit Grails 1.2.0 gestartet und mit den Groovy / Grails-Bits der STS Eclipse-Integration geflirtet .
Ich denke, die Frage verdient es, nach einem Jahr der Grails-Evolution erneut betrachtet zu werden, als die Antwort definitiv gemischt war.
Als erfahrener Java-Webentwickler habe ich folgende Fragen und würde es begrüßen, wenn meine Annahmen in Frage gestellt würden:
- Lohnt sich Grails jetzt gegen Ruby oder würfeln Sie Ihre eigenen?
- Hat es seinen fehlerhaften Start überwunden?
- Verleiht es wirklich schnelle Entwicklungsvorteile? (Ich gebe zu, ich habe jetzt Probleme, die umfangreiche Basiskonfiguration zu überwinden, um meine maßgeschneiderte App zu erstellen, die nicht auf Listen und Seiten ausgerichtet ist.)
- Funktioniert es für reale Produktions-Apps? (Es fühlt sich schwer an)
- Ist das Eclipse-Plug-In besser als es war und für den Zweck geeignet? (Ich denke noch nicht)
Vielen Dank
EDIT: Ich lerne im Laufe der Zeit und habe ein paar wichtige Probleme, um mit dem Framework zu leben - und nicht mit den Framework-Fähigkeiten selbst. Ich füge diese hinzu, weil ich denke, dass sie Überlegungen sein sollten und auf meiner Erfahrung und Meinung beruhen und jemandem helfen können, der versucht zu entscheiden, ob er Gral macht. Möglicherweise zeige ich auch meine mangelnde Erfahrung mit dem Framework, sodass nichts davon als ausgesprochene Kritik gedacht ist. Ich bin ein erfahrener Entwickler und habe Folgendes gefunden:
Das Debuggen ist wirklich schwer . In der Tat ist es fast unmöglich, vor allem als Anfänger im Framework, wenn Sie Ihren vertrauenswürdigen Debugger-Freund am meisten brauchen. Ich habe viel mehr Zeit damit verbracht, Probleme mit syntaktischen Fehlern in einem Teil des Codes aufzuspüren, als mit dem Verweisen auf Domänenfelder zu tun haben, die irgendwo im Stapel stille Fehler verursachen.
Protokollierung ist ehrlich gesagt schrecklich . Sie haben zwei Modi: "nichts Nützliches" und "übermäßig viel nutzloses Zeug". Mein Debug-Protokoll war nach einer einzelnen Seitenanforderung 128 MB groß und enthält nichts über meinen Fehler. Meiner Meinung nach muss das gesamte Problem der Protokollierung im Rahmen überprüft werden.
Die STS Eclipse IDE hat einen Grenzwert . Abgesehen von Syntax-Hilighting ist es nicht sehr nützlich. Sie können den Code nicht debuggen, es handelt sich also um einen verherrlichten Editor. Die Code-Hinweise sind lückenhaft und es gibt, soweit ich sehen kann, überhaupt keine GSP-Unterstützung. Es ist auch das langsamste Eclipse-Plug-In, das ich auf meinem Desktop habe - etwa 2 Minuten vor dem Start. Es ist schockierend langsam. Ich habe auf einen Texteditor (den Sie auch in allen Online-Tutorial-Videos bemerken werden) und eine benutzerdefinierte Syntaxhilfe zurückgesetzt.
Ich habe ernsthafte Bedenken hinsichtlich der Leistung . Ein bisschen zu früh, um es zu sagen, aber ich finde mich bereits dabei, die Datenbank wegen des Ruhezustands zu optimieren. Vielleicht ist das zu erwarten, aber ich muss mein Domain-Modell wirklich einfach halten, damit die Konventionen performante Abfragen liefern.
Und eine letzte: Die Konvention, dass Ihr logisches Domänenmodell und Ihr physisches Datenbankmodell identisch sein sollten, ist kein intelligenter Standard und wird in der realen Welt wahrscheinlich nie der Fall sein. Ich weiß, dass Sie die beiden trennen können, aber es schafft einen Grad an Komplexität, der meiner Meinung nach vermieden werden könnte, wenn die Konventionen erweitert würden. Es gibt eine unzureichende Dokumentation über die Komposition und was Sie tun müssen, damit sie in der Praxis funktioniert .
Ich habe kürzlich ein Rails-Projekt gestartet und einige Sachen mit Grails gemacht.
Meine Hauptsache bei Rails ist, dass es eine Menge Dinge gibt, die für den Entwickler völlig undurchsichtig sind (was ich hasse), und dies nimmt tendenziell zu, wenn Sie anfangen, mehr Plugins / Generatoren / libs / etc hinzuzufügen , weil, um sie zu kombinieren Sie müssen etwas reparieren. Sie haben das Gefühl, dass Rails + Plugins nur ein riesiger DSL-Hack sind, der zu brechen beginnt, wenn Sie eine falsche Kombination von Plugins + Versionen verwenden .
Bei Grails ist das Ökosystem zwar viel kleiner, aber alles relativ konsistent. Der DSL-Ansatz wird nicht sehr häufig verwendet, und durch die Verwendung eines konventionellen, aber langweiligen Designs (ich meine die Verwendung von Klassen, Schnittstellen usw. anstelle von DSLs) ist es viel einfacher zu verstehen, wie die Installation funktioniert.
Wenn Sie einen 1: 1-Vergleich durchführen, gehen Sie wie folgt vor:
Hier ist ein Beispiel:
Fazit:
quelle
Es ist es sehr wert!
Wir verwenden Grails in mehreren Projekten, die alle aus folgenden Gründen sehr erfolgreich sind:
Einfach - Es ist eines der einfachsten Frameworks, die wir jemals verwendet haben
Wiederverwendung von Legacy-Code - Alles, was wir tun müssen, ist, unseren Legacy-Code abzurufen und in den Ordner lib oder src zu werfen, und fertig. Einfach toll für uns.
Legacy-Datenbankstruktur - Es ist ein großartiges Tool, wenn Sie Datenvisualisierungen für Legacy-Datenbanken erstellen möchten.
Nun zur Lebensfähigkeit:
Bugs: Seit Version 1.1 sind nicht mehr viele Bugs aufgetreten (Version 1.0 war für uns viel zu fehlerhaft).
Tools: Netbeans verbessert sich in dieser Hinsicht wirklich, aber es schließt nicht einmal andere Tools wie Intellij IDEA (großartige Unterstützung!). Gleiches gilt für Eclipse.
Portabilität: Wir hatten bei unseren Projekten nie ein einziges Problem.
quelle
Wir haben jetzt ein halbes Dutzend Grails-Anwendungen in der Produktion, und obwohl Grails sich von Java-Frameworks unterscheidet und einige Lernzeit erfordert, hat es sich ausgezahlt, weil wir agile Techniken verwendet haben. Einzelheiten:
Wie bei allen neuen Technologien empfehle ich jedoch, Prototypen, Codeüberprüfungen und Paarprogrammierung zu erstellen und möglicherweise auch Beratung zu verwenden.
quelle
Es ist es sehr wert. Ich benutze es seit über einem Jahr und liebe es. Früher habe ich mich vor solchen Rad-Werkzeugen gescheut, aber es hat meine Arbeitsweise verändert. Mit der Version 1.2 ist es mit besseren Stack-Trace-Informationen (insbesondere für GSPs) noch besser geworden.
Das einzige Problem, das ich mit der Skalierung hatte, war der Ruhezustand und der Cache, was wirklich kein Problem ist. Selbst wenn ich den Winterschlaf im Allgemeinen nicht mag, ist die Art und Weise, wie Grails ihn mit GORM umhüllt, für mich ein Kunstwerk. Es ist wunderbar, mit dem Aspekt der Kriterienschließung zu arbeiten.
quelle
Ich habe noch niemanden gefunden, der sowohl mit Grails als auch mit Rails vertraut ist und Grails bevorzugt.
Wenn Sie beide gut kennen, bevorzugen Sie mit ziemlicher Sicherheit Rails.
Grails spricht normalerweise Java-Entwickler an, die einen Plattformwechsel befürchten.
In diesem Fall denke ich, dass JRuby wahrscheinlich ein besserer Weg ist, um einen agilen Ansatz für das alternde Legacy-JVM zu verfolgen.
quelle
Nachdem ich Grails kürzlich für ein Projekt verwendet habe, möchte ich unsere Erfahrungen im Vergleich zur Standardentwicklung von J2EE-Anwendungen teilen.
Auf jeden Fall. Selbst wenn der Gerüstweg frühzeitig verlassen wird und die Konventionen auf die eigenen Bedürfnisse zugeschnitten werden, ist die Startphase sehr kurz, da wir uns nicht um viele verschiedene Technologien kümmern müssen. Durch diese Leichtigkeit arbeiten wir nicht nur schneller, sondern auch präziser und sauberer.
Das Schreiben von Tags war nie einfacher - während wir bei JSF zunächst darüber nachdenken, ob sich die Mühe lohnt, machen wir es bei Grails einfach. Testgetrieben zu arbeiten und eine hohe Abdeckungsrate zu erreichen, ist ebenfalls recht einfach, obwohl die verschiedenen Testfälle und Verspottungsstrategien manchmal inkonsistent und fehlerhaft sind.
Der Wechsel von Java zu Groovy ist eine große Freude. Wir haben es geliebt, Listen- und Kartenliterale, Schließungen und Builder zu haben, unsere "Map" -Implementierung für Kesselplatten in Java wegzuwerfen und kompakten, aussagekräftigen und fokussierten Code zu schreiben.
Was die Entwicklungsgeschwindigkeit verlangsamt, ist die nicht so perfekte IDE-Unterstützung, die auch für das von uns verwendete IntelliJ-Plugin gilt. Die schlechte, oft alte und sogar falsche Dokumentation, die über verschiedene Orte verstreut ist (was das Versprechen vereitelt, dass die Suche vorbei ist), steht auch einer raschen Entwicklung im Wege. Daher mussten wir oft auf das Lesen von Quellcode zurückgreifen und hatten anschließend Angst vor den zugrunde liegenden Hierarchien der Spring-Klasse.
quelle
Ich werde meine 3-jährige Erfahrung mit Grails in fast zehn Anwendungen teilen. Ich kann mich nicht mit Ruby on Rails vergleichen, daher beantworte ich Ihre anderen Fragen.
quelle
Das Debuggen ist wirklich schwer. Ich habe nie festgestellt, dass dies ein großes Problem ist. Sie können entweder einen Debugger anhängen und durchgehen oder eine Menge println / logs in den Code stecken, um herauszufinden, was los ist.
Protokollierung ist ehrlich gesagt schrecklich. Ich bin damit einverstanden, dass die Stapelspuren im Allgemeinen 4 Seiten mit nutzlosen Informationen enthalten, wobei die gelegentliche Zeile informativ ist. Es ist jedoch ein kleiner Preis für solch ein großartiges Framework.
Die STS Eclipse IDE hat einen Grenzwert. Eclipse hat schlechte Unterstützung für Grails. Verwenden Sie IntelliJ, wenn dies möglich ist. Ich bin ein Tightwad, aber wenn meine Firma es mir erlauben würde, würde ich gerne das Geld für IntelliJ bezahlen.
quelle
Ich benutze Grails seit den ersten Tagen der 1.0-Beta und kann Ihnen nur empfehlen, Groovy / Grails ernst zu nehmen, wenn Sie aus dem Java-Shop kommen.
Wenn Sie ein Java-Shop sind und Ruby Rails in Betracht ziehen, hören Sie auf Grails. Wenn Grails bei Ihnen nicht funktioniert, können Sie Rails jederzeit starten.
quelle
Das Grails Eclipse Plugin ist Mist. Es stürzt ohne Grund ab und unterstützt Groovys Flexibilität nicht wirklich. NetBeans und IntelliJ sollen viel besser sein, aber ich habe sie noch nicht ausprobiert.
Funktioniert es? Natürlich tut es das. Sogar Ruby on Rails funktioniert, solange Sie genügend Server auf das Problem werfen. Ich habe jedoch keine Ahnung, wie Grails mit verschiedenen Java-Frameworks verglichen wird.
Verleiht es wirklich schnelle Entwicklungsvorteile? Nun, ich vermisse immer noch viele gute Ruby / Rails-Sachen. Datums- und Aufzählungsanforderungsparameter werden nicht automatisch erkannt (andererseits hat Rails auch einige Probleme mit Datumsangaben). TimeCategory sollte Teil der Standardkonfiguration sein, ist es aber nicht. Aber es gibt auch viele Dinge, die bemerkenswert wenig Konfiguration erfordern.
Es ist nicht ganz dort, wo Rails ist (ich freue mich besonders auf Rails 3), aber es ist viel angenehmer zu arbeiten als mit vielen Java-Frameworks. Trotzdem geht die Magie unter der Oberfläche viel tiefer als in Rails. Zum Beispiel ist das System für Constraints sehr leistungsfähig, aber es basiert auf einer riesigen Schicht undurchdringlichen Federmaterials und ist wirklich unflexibel, wenn Sie dieselbe Leistung auf etwas andere Weise nutzen möchten. Schienen sind leichter zu untergraben, IME.
Lohnt es sich? Ja. Ist es eine bessere Wahl als etwas anderes? Das hängt davon ab.
quelle
Even Ruby on Rails performs, as long as you throw enough servers at the problem
- Ich denke, Sie haben eine andere Vorstellung von "Performant" als andere Leute. Hardware mag im Vergleich zu Entwicklern relativ billig sein, aber das Ausführen dedizierter Server kostet sicherlich ein Bündel, und wenn Server auf ein Problem geworfen werden müssen, ist die Software nicht gut genug. Wenn Sie mehrere Server für eine nicht wichtige Site benötigen, sind Sie es etwas falsch machen.Ich würde vorschlagen, dass Sie es selbst versuchen. Ich liebe die Flexibilität von Grails und die Entwicklungsgeschwindigkeit. Wie Sie jedoch sehen können, sind die Erfahrungen anderer unterschiedlich. Ich möchte in der Lage sein, mithilfe der Java-Plattform schnelle Anwendungen für meine Kunden zu entwickeln, und ich habe festgestellt, dass Grails für uns sehr gut funktioniert.
Ich fand auch das Frontend sehr flexibel zu entwickeln. Ich denke auch, dass Sie den gesunden Menschenverstand verwenden und Ihre Plugins sorgfältig auswählen müssen. Ich halte mich an die Plugins, die von springsource unterstützt werden.
quelle
Nach meiner Erfahrung bringt Grails einige sehr attraktive Funktionen auf den Tisch, die es definitiv wert sind, gelernt und verwendet zu werden.
Java wie Syntax und grooviger Syntaxzucker. wie das Beste aus beiden Welten. Sie können sofort mit Java beginnen, anstatt die Syntax einer neuen Sprache wie Ruby zu lernen, und dann langsam zu einer groovigen Syntax übergehen, die robust, einfach und intuitiv ist
Für die Projektmanager sehe ich keinen Grund, warum Grale nicht verwendet werden können oder nicht, es sei denn, es gibt einen zwingenden Grund, Grails aus irgendeinem Grund nicht zu verwenden (Widerstand von oben, neue Technologien oder ähnliches zu übernehmen) am wenigsten versucht.
Um die Besorgnis über das Debuggen zu beantworten, ist es nicht so schwer. Das Debuggen ist einfach, wenn Sie die Netbeans-IDE verwenden. Das bringt mich zu einem weiteren Punkt, den ich erwähnen möchte. Nach wenigen Experimenten mit allen IDEs haben wir festgestellt, dass Netbeans für diese Aufgabe am besten geeignet ist. Es bietet eine bessere Unterstützung für Code-Vervollständigung, Syntax-Hervorhebung und Debugging usw. Meiner Meinung nach ist STS dafür nicht gut genug.
quelle
Es hatte sich im letzten Jahr definitiv stark verbessert. Im Dezember besuchte ich die Groovy & Grails Exchange in London. Es wurde ein großartiger Vortrag über die Integration von Groovy & Grails in Eclipse / SpringSource STS gehalten, der aufgezeichnet wurde (siehe Video) .
Aus meiner Sicht hat Eclipse viel an Boden gewonnen. Derzeit scheint IntelliJ ein wenig voraus zu sein, aber das könnte sich in den nächsten Monaten ändern.
quelle
Das Eclipse-Plugin steht noch bevor, aber Sie können die Eclipse-Version von Spring Source (SpringSource Tool Suite) verwenden.
http://www.springsource.com/products/sts
Es ist im Vergleich zu den vorherigen Plugin-Versionen recht anständig, und da Spring Source das für Grails und Groovy verantwortliche Unternehmen übernommen hat, können Sie davon ausgehen, dass STS schnell besser wird
quelle
Persönlich habe ich RoR gelernt und es für einige Heimprojekte verwendet, bin dann aber zu Grails gewechselt, hauptsächlich, weil es auf der JVM läuft, und deshalb hoffe ich, die Fülle von Java-Performance- / Profiling-Programmen nutzen zu können, die helfen sollten, alle zu identifizieren Engpässe im Code, bevor sie zum Problem werden.
Im Allgemeinen habe ich keinen großen Unterschied in der Qualität der von RoR und Grails verwendeten IDEs festgestellt. Um fair zu sein, programmiere ich unter Linux und habe TextMate für die RoR-Entwicklung noch nicht ausprobiert. Als ich RoR benutzte, benutzte ich Netbeans.
Im Moment programmiere ich mit STS und finde es eine Freude, mit Grails zu arbeiten, obwohl ich immer noch finde, dass die Erkennung / Vervollständigung von Methoden viel besser funktionieren könnte.
quelle
Ich bin ein Vollzeit-Java-Entwickler, benutze aber Schienen für meine Hobbyprojekte. Wir haben vor einem Jahr Grails für ein Projekt bei der Arbeit bewertet. Meine Erfahrung mit Gralen hat mich ein wenig enttäuscht und dies war der Grund, warum ich anfing, Schienen zu untersuchen. Nachdem ich beide verwendet habe, habe ich den Eindruck, dass, obwohl Groovy nicht weit hinter Ruby als Sprache liegt, Rails ein deutlich verbessertes Erlebnis gegenüber Grails bietet. Ganz einfach, Schienen scheinen weitaus realistischere Probleme zu lösen, insbesondere wenn Sie die Anzahl der verfügbaren guten Edelsteine berücksichtigen. Ich denke an Dinge wie die Bereitstellung von Suche, Versionierung, RSS, nicht groben Apps, Integration in Cloud-Dienste usw. Ich habe den Eindruck, dass Grails ungefähr auf dem Niveau von Rails 1.x liegt. Bis Ende dieses Monats sollten Rails 3 freigegeben sein. Wir' Wir haben uns tatsächlich entschlossen, jetzt Schienen bei der Arbeit zu verwenden. Am Ende ist Grails für Java-Entwickler leichter zu erlernen, aber letztendlich fehlt die Verfeinerung, um ein breiteres Spektrum von Projektanforderungen abzudecken.
quelle
Ich würde nein sagen. Es ist für die meisten Anwendungen zu aufgebläht, imho, besonders wenn Sie nur einen Prototyp erstellen möchten. Wir brauchen nicht den ganzen Code, all diese Abhängigkeiten, die mit Grails gebündelt sind, um eine Webanwendung zu erstellen. Sie brauchen nicht jedes Mal Frühling, wenn Sie eine Webanwendung veröffentlichen möchten. Sehen Sie sich an, was Sie erreichen möchten, bevor Sie Ihrem Stapel eine ganze Welt voller Abhängigkeiten hinzufügen. Ich denke, es ist wichtig zu wissen, woraus Ihre Anwendung besteht.
Ich empfehle, etwas wie Ratpack zu betrachten, das viel leichter ist, fast wie Sinatra für Rubin.
quelle
Ich möchte auf zwei weitere Überlegungen hinweisen: Speichernutzung und Arbeitsmarkt. Die Anwendung von Grails benötigt viel Speicher, insbesondere im Entwicklungsmodus, z. B. 600 MB für eine mittelgroße Anwendung. Bei Bereitstellung im Produktionsmodus, z. B. War-Datei in Tomcat, kann die Nutzung etwa 500 MB betragen. Dies ist teilweise von der Verwendung von Java geerbt.
Was den Arbeitsmarkt angeht und soweit ich gelesen habe, gibt es wenig Nachfrage nach Grails-Programmierern in Stellenausschreibungen im Vergleich zu z. B. Django und Ruby on Rails.
quelle
Aus meiner Erfahrung Ende 2013.
Vorteile
Nachteile
quelle
Es ist immer noch schrecklich. Ich kenne ihren Anfang nicht, aber die Migration von Grails 2 zu Grails 3 ist immer noch ein Albtraum und sie brechen mehr als sie lösen.
Ich habe eine Stunde damit verbracht, Grails 'Tests durchzuführen, um etwas in der Konsole auszugeben (es funktioniert nicht sofort), selbst in Java werden Sie nicht so viel Zeit damit verbringen, etwas aus Tests auszugeben.
Ich kenne immer noch keine einzige berühmte Firma, die etwas mit Grails baut.
Ich habe keine Ahnung, warum noch jemand Eclipse verwendet, aber die IntelliJ-Unterstützung für Grails 3 ist einfach unbrauchbar.
Beantwortung der Hauptfrage:
Wenn Sie sich die Microsoft Access-Lizenz möglicherweise nicht leisten können. Für echte Projekte würde ich mich von Grails fernhalten. Tatsächlich ist es nur ein totgeborenes Kind.
quelle