Lohnt sich Grails (jetzt)? [geschlossen]

72

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 .

Simon
quelle

Antworten:

56

Ich benutze Grails seit mehr als 4 Monaten und werde versuchen, Ihnen mein persönliches Gefühl für Grails und seine Verwendbarkeit zu vermitteln.

Lohnt sich Grails jetzt gegen Ruby oder einen anderen Wurf?

Natürlich lautet die Antwort nicht "Ja" oder "Nein", aber es kommt darauf an . Dies hängt von Ihren Anforderungen ab (müssen Sie in der Java-Welt sein?), Auch von Ihren Vorlieben (bevorzugen Sie die domänenorientierte Entwicklung, bevorzugen Sie Groovy ...)? Ich kann jedoch antworten, dass Grails eine ernsthafte Alternative zu Rails ist. Ich glaube, was auch immer Ihre Rails-Anwendung ist, Sie können es auch mit Grails tun. Abhängig von der Art Ihres Projekts kann dies jedoch mehr oder weniger Zeit in Anspruch nehmen. Wenn Sie mit Rails vertraut sind, aber nicht mit Grails, ist Rails die sicherere Option.

Hat es seinen fehlerhaften Start überwunden?

Ja . Wenn Sie sich meine ersten Nachrichten (auf dieser oder anderen Websites) ansehen, habe ich mich viel über Grails-Fehler beschwert. Sie müssen sich jedoch nur daran erinnern, dass Grails am Rande etwas rau ist (z. B. nicht zu viel Domain-Vererbung). Wenn Sie mit dem Framework vertraut sind, werden Sie nicht allzu viele böse Überraschungen erleben. Ich sage nicht, dass Grails nicht fehlerhaft ist. Es ist sicherlich mehr als Rails. Aber es ist auch benutzerfreundlicher als ein Buggy . Ein Tipp dafür: Verwenden Sie so wenig Plugins wie möglich . Weil viele von ihnen fehlerhaft sind und einige untereinander nicht kompatibel sind. Fügen Sie also kein Grails-Plugin hinzu, es sei denn, Sie sind sicher, dass das Grails-Plugin aktuell, nicht aufdringlich und (von Ihnen selbst) getestet ist.

Verleiht es wirklich schnelle Entwicklungsvorteile?

Ja . Sie müssen sich fast nicht mit dem DB-Design befassen. Dank der Konvention über die Konfiguration ist die Konfiguration von Anfang an fast für Sie erledigt. Ihre Anwendung ist leicht zu pflegen. Der einzige Nachteil, den ich sehe, ist die Front-End-Entwicklung, die nicht so umfangreich ist wie andere Technologien (wie Rails oder ASP).

Funktioniert es für reale Produktions-Apps?

Ich kann es nicht sagen, weil ich meine Website immer noch nicht live geschaltet habe, aber ich bin ziemlich zuversichtlich, da sky.com Grails verwendet und die Websites einen erheblichen Traffic anziehen - rund 7 Millionen Seitenaufrufe pro Tag . Auch hier hängt die Leistung stark von Ihrer Anwendungsarchitektur und Ihren Entwurfsentscheidungen ab.

Ist das Eclipse-Plug-In besser als es war und für den Zweck geeignet?

Keine Ahnung. Ich benutze IntelliJ, aber ich denke, es ist nicht viel besser als vor einem Jahr, laut Beschwerden, die ich im Grails-Reich sehe.

Ich hoffe, es hilft.

fabien7474
quelle
Ich stimme dem Punkt über die Plugins zu. Sie können nicht garantieren, dass Plugins für neuere Versionen von Grails aktualisiert werden. Ich würde empfehlen, dass Sie sich an die von Grails / SpringSource unterstützten halten.
Kimble
4
Plugins sind ein interessanter Haufen in der Grails-Community. Wenn Sie Plugins als Black Box betrachten, die Sie mit Ihrer App verwenden, werden Sie wahrscheinlich Probleme haben. Aber wenn Sie Plugins als Vorlagen betrachten, die die Grails-Community bereitgestellt hat, kommen Sie viel besser miteinander aus.
Ben Doerr
Die Grails-Unterstützung von NetBeans ist in Ordnung.
Deamon
1
NetBeans oder IntelliJ sind die IDEs der Wahl für Grails. IntelliJ, wenn Sie das Geld haben.
Ubiquibacon
1
Rails für 5 Jahre, Groovy / Grails für 8 Monate. Die Vertrautheit sagt, dass Rails besser ist, aber Grails ist hervorragend verwendbar, sobald Sie den anfänglichen Lernbuckel überwunden haben. Grails fühlt sich im Vergleich eine kleine Konfigurationsdatei glücklich an (brauche ich wirklich 6 oder 7 für ein einzelnes Plugin-Modul?), Aber die Persistenzschicht ist sehr gut zu bearbeiten. Was IDEs betrifft, so wurde STS 4 Monate lang mit vielen Frustrationen verwendet, dann 4 Tage lang IntelliJ ausprobiert und nie zurückgeschaut.
Railsdog
41

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:

  • Sprachimplementierung : Ich bevorzuge Ruby gegenüber Groovy, obwohl ich Ruby nicht so gut kenne. Groovy fühlt sich wie eine Implementierungssprache mit guten Absichten und schlechten Implementierungen an, in der einige der Funktionen über die Syntax geschweißt sind. Ich beziehe mich auf einige spezielle Klassen, die nur da zu sein scheinen, um einen Hack zuzulassen.
  • Framework-Funktionen : Rails ist in dieser Hinsicht weit voraus. Sie können die meisten Aspekte von Rails (z. B. Layouts, Vorlagen, CSS / JS-Packer, Validierung, Testen von Frameworks usw.) auf verschiedene Arten konfigurieren. Grails bleibt dabei zurück, obwohl es für die meisten Anwendungsfälle flexibel genug ist.
  • Plugins : Rails hat eine Menge Plugins, die als Segen oder Albtraum angesehen werden können. Einige Plugins werden nicht gepflegt, andere spielen mit einigen Funktionen oder Plugins nicht gut und es gibt viele Gabeln. Ich lerne, mich an die grundlegenden und am häufigsten verwendeten Plugins (Authlogic, Haml usw.) zu halten. Grails hat ausgezeichnete Plugins für die Grundlagen (Autorisierung / Authentifizierung, ORM usw.) und einige andere Plugins für kleinere Dinge
  • Testen : Rails bietet unzählige Möglichkeiten zum Testen, aber das ist nicht unbedingt gut. Einige Test-Frameworks funktionieren mit einigen Plugins usw. nicht gut. Grails hat weniger Test-Plugins, aber auch hier lassen sie sich besser in einige der Haupt-Plugins integrieren (da nicht so viele Plugins integriert werden müssen).
  • Datenbank : Grails gewinnt bei weitem .
    • Ich bevorzuge das Modellieren meiner Domain-Klassen, anstatt meine Datenbank zu hacken.
    • Der Ruhezustand (der unter der Haube verwendet wird) ist Jahre von seinem Rails-Gegenstück entfernt. Obwohl es einen Datamapper für Rails gibt (der Hibernate ähnlicher ist als ActiveRecord), ist er meiner Meinung nach nicht ausgereift genug. Grails haben auch Migrationen durch ein Plugin.
    • Sie haben großartige Cache-Impls für den Ruhezustand (JBoss-Cache, EhCache usw.), die Ihre Leistung über das Dach steigern können
  • Bibliotheken : Ich bin der Meinung, dass Ruby viele Bibliotheken für neue Inhalte wie NoSQL oder Cloud-Dienste hat, während Java eine Unmenge von Bibliotheken für ältere Funktionen wie Excel-Verarbeitung hat. Vergessen Sie nicht, dass Java-Bibliotheken normalerweise viel schneller als Ruby sind
  • Schneide : Rails ist mehr Hype, was bedeutet, dass mehr Ressourcen dahinter stehen. Wenn Sie also versuchen, MongoDB oder Riak in Rails zu integrieren, gibt es eine gute Änderung, die bereits von jemandem vorgenommen wurde. Grails bleibt zurück, hauptsächlich weil es nicht so beliebt ist, so dass sich die Community eher auf die Lösung alltäglicher Probleme konzentriert, anstatt all die neuesten Dinge wie NoSQL usw. Zu verwenden

Hier ist ein Beispiel:

  • Die meisten Grails-Plugins generieren Code in Form von Modellen und / oder Diensten. Der Rest wird normalerweise von einer Bibliothek erledigt. Sie können den Modell- / Servicecode überprüfen, sehen, was er tut, und ihn ändern.
  • Die meisten Rails-Plugins verbinden sich normalerweise mit der Rails-API. Dies bedeutet, dass Sie am Ende eine Funktion aufrufen oder ein Modul einschließen und dann das eigene DSL des Plugins verwenden. Dies funktioniert gut, wenn es funktioniert , aber wenn es kaputt geht, ist es schrecklich und Sie müssen am Ende einige Dinge patchen oder ein anderes Plugin oder eine andere Plugin-Version installieren. Ich vermute, ein erfahrener Rails-Entwickler fühlt sich damit wohler, aber ich bin es nicht.

Fazit:

  • Wenn Sie auf dem neuesten Stand sein möchten, sollten Sie sich nicht um gelegentliche Patches kümmern, eine große Community bevorzugen und / oder die Verwendung von DB im ActiveRecord-Stil verwenden, entscheiden Sie sich für Rails . Außerdem ist Ruby als Sprache sehr elegant
  • Wenn Sie Klassenschnittstellendesigns anstelle von DSLs bevorzugen, Ihre App lieber anhand von Modellen modellieren möchten, keine exquisiten Funktionen benötigen und mit dem Java-Ökosystem vertraut sind, entscheiden Sie sich für Grails
Miguel Ping
quelle
1
Ich habe gerade Ihre Antwort entdeckt. Gute Antwort. Sehr objektiv.
fabien7474
17

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.

Kico Lobo
quelle
Simon, schauen Sie sich dieses Projekt an. Manubia.com.br Es ist ein persönlicher Finanzmanager, der zu 100% in Grails arbeitet. Es zeigt hervorragende Leistung.
Kico Lobo
1
Simon: Wenn Sie keine Echtzeit-Apps erstellen möchten, ist die Leistung kein Problem. Ja, sie verbraucht mehr RAM als eine Java-Anwendung. Sie können jedoch Unternehmens-Apps in der Hälfte der Zeit entwickeln, sodass Sie mit dem Geld viel Arbeitszeit sparen Sie würden in ihnen ausgeben, Sie können einen besseren Server bezahlen und Sie sparen immer noch viel Geld.
LuisZavaleta
9

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:

  • Wir verwenden IntelliJ. Es ist nicht sehr teuer und hat sich in wenigen Wochen für uns ausgezahlt.
  • Wie bei allen dynamischen Sprachcodes sind automatisierte Tests, kontinuierliche Integration und Refactoring ein Muss. Wenn Sie bereits TDD üben oder zumindest eine angemessene Testcode-Abdeckung haben, wird keine zusätzliche Arbeit hinzugefügt.
  • Der Ruhezustand wird standardmäßig mit Grails geliefert, Sie können jedoch auch andere Persistenz-Frameworks verwenden. Es gibt heute 5 andere Persistenz-Plugins
  • Die Protokollierung war für Graeme Rochers eindeutig kein Problem, hat sich jedoch stetig verbessert. Ich habe jedoch kein Problem festgestellt, bei dem ein Fehler nicht protokolliert wurde (Sie müssen sicherstellen, dass Sie Ausnahmen in Ihrem Code korrekt abfangen).
  • Das Debuggen war eindeutig nicht auf dem Radar (aber dies hat sich nicht verbessert). Wir verlassen uns sowieso nicht auf das Debuggen.

Wie bei allen neuen Technologien empfehle ich jedoch, Prototypen, Codeüberprüfungen und Paarprogrammierung zu erstellen und möglicherweise auch Beratung zu verwenden.

Olivier Gourment
quelle
7

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.

Robert
quelle
6

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.

optimistischer monkey
quelle
Genau richtig. Es ist traurig, aber so wahr: Technologen (auch bekannt als Programmierer), die Angst haben, sich zu ändern, auch wenn es zum Besseren bedeutet…
Levi Figueira
5

Nachdem ich Grails kürzlich für ein Projekt verwendet habe, möchte ich unsere Erfahrungen im Vergleich zur Standardentwicklung von J2EE-Anwendungen teilen.

Verleiht es wirklich schnelle Entwicklungsvorteile?

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.

hlg
quelle
5

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.

Hat es seinen fehlerhaften Start überwunden?

  • Ja, hat es. Ich habe einige Grails-Fehler in Grails 2.0.4 / 2.2.4 festgestellt.

Verleiht es wirklich schnelle Entwicklungsvorteile?

  • Es ist ziemlich einfach zu lernen, einfach zu entwickeln und hat noch nie jemanden mit guten Kenntnissen der Java-Welt gesehen, der mehr als eine Arbeitswoche brauchte, um die Grundlagen zu kennen. Auch pflegeleicht. Und Sie müssen sich nicht viel Sorgen um Ihre DB machen - stellen Sie einfach sicher, dass Sie mak sind

Ist das Eclipse-Plug-In besser als es war und für den Zweck geeignet?

  • Wählen Sie Ihre IDE sehr sorgfältig aus. Eclipse hat mir sehr geholfen, aber es stürzt ab und verursacht mehr Probleme als es sollte. Ich habe mich für IntelliJ entschieden und im Testmonat schien es eine bessere Wahl zu sein. In letzter Zeit habe ich Sublime Text, einige Plugins und die alte Befehlszeile verwendet. Ich gehe nur in besonderen Situationen zu einer IDE, um beispielsweise deren Debugger zu verwenden.

Funktioniert es für reale Produktions-Apps?

  • Es ist ziemlich schwer. Informieren Sie sich viel über Ihre Designentscheidungen, bevor Sie Ihre Modelle schreiben. Recherchiere viel über gutes Grails-Design. Die meisten Dinge, die ich vor zwei Jahren getan habe, kann ich erkennen, wie ich es jetzt verbessern kann, da ich erfahrener bin. Es handhabt reale Produktions-Apps gut, aber abhängig von den Fehlern, die Sie im Ruhezustand machen, kann es wirklich Kopfschmerzen bereiten.
Bianca Rosa
quelle
> Es ist ziemlich einfach zu lernen, einfach zu entwickeln und hat noch nie jemanden mit guten Kenntnissen der Java-Welt gesehen, der mehr als eine Arbeitswoche brauchte, um die Grundlagen zu kennen. Und dann verbringst du Monate damit, Grails Probleme in der Produktion zu bekämpfen. Die meistens durch den Missbrauch fast aller Werkzeuge verursacht werden, die sie unter der Haube zu kapseln versuchen. > Wählen Sie Ihre IDE sehr sorgfältig aus. Eclipse ist Scheiße, wird das jemand klar sagen? :)> Es ist ziemlich schwer. Ja, die einfache Antwort ist nein, das tut es nicht.
Andrej Istomin
4

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.

Amöbe
quelle
3
Tatsächlich ist das Debuggen mit IntelliJ Idea so einfach wie möglich, abgesehen von geringfügigen Unannehmlichkeiten wie dem Erweitern von Überwachungsvariablen.
Victor Sergienko
4

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.

Teo Choong Ping
quelle
2

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.

mcv
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.
Mr. Boy
Das hängt ganz davon ab, was diese nicht wichtige Site tatsächlich tut. Viele Server, von denen noch niemand etwas gehört hat, erfordern Clustering, nicht weil die Sprache langsam ist, sondern weil der Code so komplex ist. Aber einige Sprachen (wie Ruby) sind wirklich langsam. Aber auch eine langsame Sprache muss kein Problem sein, wenn Sie es sich leisten können, weitere Server hinzuzufügen. Ist das falsch? Das hängt ganz von der Situation ab. Irgendwann lohnt es sich auf jeden Fall, das schwere Zeug in etwas Effizienteres umzuschreiben. Wenn Sie jedoch anfangen, ist die Effizienz der Entwicklung möglicherweise wichtiger als die Effizienz der Ausführung.
mcv
2

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.

Scott Warren
quelle
2

Nach meiner Erfahrung bringt Grails einige sehr attraktive Funktionen auf den Tisch, die es definitiv wert sind, gelernt und verwendet zu werden.

  • Agilität - Dinge, deren Implementierung in herkömmlichen J2EE-Projekten Wochen gedauert hat, sind im Allgemeinen eine tägliche Arbeit mit dem Grails-Plugin-System. Dinge wie Ajax, JQuery UI, Acegi, erholsame Implementierung, Scheduler-System und viele davon
  • Läuft auf JVM, wodurch das Erlernen eines anderen Laufzeitsystems und seiner Besonderheiten verringert wird
  • 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.

Paras
quelle
1

Ist das Eclipse-Plug-In besser als es war und für den Zweck geeignet?

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.

Stefan Armbruster
quelle
1

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

Peninha
quelle
Ich benutze dies, wie ich in der Post sagte. Um ehrlich zu sein, finde ich es nicht großartig. Es ist ein großer Vorteil, nur ein Eclipse-Plug-In zu sein, aber die spezifische Unterstützung für Groovy ist nicht großartig und gsp ist fast nicht vorhanden. Ich hätte erwartet, dass Sie auch die grundlegenden Grails-Befehle ausführen können, aber Sie müssen so weit wie möglich zu einer Befehlszeile gehen, was den Zweck einer IDE zunichte macht. Ein langer Weg von der Zweckmäßigkeit würde ich sagen.
Simon
Huh? Es ist genau da. Projekt-> Navigieren-> Befehl Grails ausführen. (oder so ähnlich) Windows-Benutzer haben sogar eine Verknüpfung.
Reverend Gonzo
Sie haben Recht, es könnte definitiv verbessert werden, aber was die Eclipse-Unterstützung angeht, übertrifft es bei weitem die fast nicht existierende Unterstützung, die Eclipse zuvor hatte. Aber ich persönlich habe nichts gegen die Befehlsshell, sie ist besonders praktisch für Plugins-Befehle
Peninha
1

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.

srkiNZ84
quelle
0

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.

opsb
quelle
4
Die Frage stellte sich jetzt nach dem Zustand von Grails im Gegensatz zu vor einem Jahr.
Jean Barmash
1
Da wir uns überlegt haben, welche Technologie wir bei der Arbeit anwenden sollen, habe ich den Fortschritt der Grale genau verfolgt. Meine Punkte sind noch heute gültig. Wenn Sie nach einer Technologie suchen, die die Produktivität für eine Vielzahl von Anforderungen verbessert, werden Sie mit Grails enttäuscht sein, wo Sie mit Schienen nicht zufrieden sind.
opsb
Würden Sie nicht folgen, sondern mit Grails 1.3.6 arbeiten, würden Sie etwas anderes sagen. Ich habe versucht und Grails <1.3 aufgrund eines Problems beim Nachladen (oder eines Mangels daran) aufgegeben, bin aber mit diesem entscheidenden Problem wieder an Bord gekommen. GORM ist ein Meisterwerk, die Persistenzschicht ist vollständig gepflegt und elegant, im Gegensatz zu AR, wo viele Railisten eine anständige Alternative fordern (wie Sequel). Communities sind sehr unterschiedlich, Groovy / Grails: reifes, ernsthaftes "Unternehmen"; Ruby / Rails: jung, dynamisch, Avantgarde, Grenzen überschreiten, wenn es keine Bigs bricht, Patch und weiter geht
;-)
Wenn Sie Releases vergleichen, sollten Sie sie benennen. Persönlich muss ich, da ich mit Grails zufrieden genug bin, zugeben, dass ich seit 1.20 bis 1.3.7 keine atemberaubende Änderung der Kernfunktionen nennen kann - und auch in der Roadmap 1.4.
Victor Sergienko
0

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.

Espen Schulstad
quelle
1
Grails ist für APIs aufgebläht, was ich auch für Rails sagen würde. Für eine allgemeine Webanwendung ist es schwierig, eine vollständige Java-Stack-Anwendung hinter sich zu haben.
Xorlev
0

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.

Mohamad Fakih
quelle
0

Aus meiner Erfahrung Ende 2013.

Vorteile

  • Wenn Sie nur sehr wenige Plugins verwenden und eine Reihe von Grails No-S und Never-S einschränken, ist dies eine ziemlich reibungslose Entwicklungserfahrung

Nachteile

  • Das Aktualisieren (F5) ist immer ein Problem. Und das ist das nervigste. Aus irgendeinem Grund musste ich den Server bei jeder 3.-4. Aktualisierung neu starten. Es gibt einen bekannten Neustartfehler: Frage1 , Frage2 , der jedoch selten auftritt.
  • Fehler auf Sprachebene. Wenn ich statische innere Klassen verwendete, musste ich den Server bei einer Änderung immer neu starten. Obwohl es keine Probleme beim Erstellen gibt, ist der Sprachgebrauch für mich begrenzt
  • Startzeit, Erstellungszeit, Anwendungsgröße (70 Megabyte für eine kleine App), Speichernutzung
  • Nur Remote-Debugging, IDE-Debugging ist sehr instabil
Andrey Chaschev
quelle
2
Welche IDE verwenden Sie? Ich habe kein Problem beim Debuggen mit meiner IDE (IntelliJ).
Nathan
Es ist Intellij und dieses Debugging-Problem trat bei meinen Kollegen auf. Ich hatte drei Projekte mit Grails in einem, bei denen wir das Debuggen von Idea überhaupt nicht verwenden konnten - es hat sich beim ersten Haltepunkt verfangen, bei zwei anderen gab es kein solches Problem, aber es gab einen Leistungsabfall beim Anzeigen des Stack-Frames, also haben wir debuggt aus der Ferne.
Andrey Chaschev
1
Ich muss hinzufügen, dass dies passiert, wenn Sie Ihren Servercode ändern. Es ist alles in Ordnung, wenn Sie die JS / CSS / HTML-Sache machen.
Andrey Chaschev
Verwenden Sie aktiv die Methode test / unit / [Ihre Controller]? Nur neugierig, da mein Team auch Intellij verwendet und wir die Tools zum Erstellen und Testen von Grails schätzen. Ich schreibe jedoch keine umfangreichen Anwendungsfälle oder Szenarien, die einen großen Unterschied darstellen könnten.
Nathan
Ja, ich war mehr mit dem Backend beschäftigt, weniger mit dem Frontend. Und alle Grails-Fehler, die ich hatte, waren auf die Bemühungen zurückzuführen, Java-Servercode neu zu kompilieren und neu zu laden, während JVM ausgeführt wurde.
Andrey Chaschev
0

Hat es seinen fehlerhaften Start überwunden?

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.

Verleiht es wirklich schnelle Entwicklungsvorteile?

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.

Funktioniert es für reale Produktions-Apps?

Ich kenne immer noch keine einzige berühmte Firma, die etwas mit Grails baut.

Ist das Eclipse-Plug-In besser als es war und für den Zweck geeignet?

Ich habe keine Ahnung, warum noch jemand Eclipse verwendet, aber die IntelliJ-Unterstützung für Grails 3 ist einfach unbrauchbar.

Beantwortung der Hauptfrage:

Lohnt sich Grails (jetzt)?

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.

Andrej Istomin
quelle