Frage

Ich habe stolperte über den folgenden neuen Java Web-Framework: Play

http://www.playframework.org/

http://www.playframework.org/documentation/1.0/home

mit solch einer beeindruckenden Liste von Features, ich bin überrascht, ziemlich habe ich nicht davon gehört, bevor ...

Sounds wie die Java-Web-Entwicklung gelobte Land ...

hat es jemand versucht? eine wirkliche Erfahrung damit? denken Sie, es lohnt sich das Studium?

War es hilfreich?

Lösung

Ich bin damit einverstanden Jason mit dem Spielen könnte nur beweisen, besser sein als Grails. Mit vier Grails-Projekten unter dem Gürtel (mit vorangestellten zwei Tapestry Projekten und einem Wicket-Projekt), suche ich ernsthaft am Spiel nächste.

Eines der Dinge, die ich dachte, war kühl über Grails ist, dass „Groovy alles.“ Das heißt, verwenden Sie Groovy zu schreiben alles (außer der HTML und CSS) - Domänen-Controller, Dienstleistungen, Seitenvorlagen (APS), Tag-Bibliotheken, Hibernate API (GORM), Unit-Tests (GUnit) und Build-Skripte ( GANT). Sie können sogar von Shell-Skripten in Groovy schreiben. Also, um Code in der Lage, alle Aspekte einer App eine einzige Sprache wieder schienen wie eine Vereinfachung verwenden, die längst überfällig war - zu den Tagen des Schreibens Desktop-Anwendungen in einer einzigen Sprache wie C ++ oder Delphi Horchen zurück. Ich habe jedoch gelernt, dass eine Größe nicht alle hier paßt.

Zum einen ist die IDE-Unterstützung für Groovy nicht groß. IntelliJ hat den besten Job, aber mit Groovy dynamisch zu sein, kann es nur so weit gehen. Die Refactoring-Tools nicht (kann nicht) fangen alles, so dass man sie nicht zu 100% vertrauen kann. Das heißt, Sie müssen sein, besonders wachsam mit Unit-Tests. Auch hier, weil Grails verlässt sich so sehr auf dynamische „Magie“, die zur Laufzeit geschieht, die Unit-Tests in Grails muss auf einer umfangreichen spöttischen Schicht verlassen, ihn nachzuahmen, und diese Schicht spöttischen schrulligen ist. Ein drittes Problem ist, dass ein großer Teil des sogenannten Groovy-Code, dass Sie schreiben tatsächlich domänenspezifische-Sprache (DSL) Code. (Um eine lange Geschichte kurz zu machen, DSLs kurz Hand Groovy, unter Ausnutzung der Tatsache, dass in Groovy und Menge der Syntax ist optional.) Grails verschiedene DSLs für verschiedene Konfigurationen verwendet, URL-Mapping etc. und es ist inkonsistent. Wie Sie log4j Einstellungen, zum Beispiel angeben, sieht nichts, wie, wie Sie die Datenquellen angeben, und weder sieht aus wie die reine Java auf dem Groovy basiert. Also, das Versprechen von „alles Groovy“ auseinander fällt sowieso.

Wenn das der Fall, so sehe ich, wo das Play-Team herkommt.

  1. Gehen wir zurück zu regelmäßigen Java für die Domänen, Controller, Dienstleistungen und JUnits macht Sinn. Starke Typisierung bedeutet, kann der IDE zuverlässig Hilfe bei Inteli-sense, Code-Navigation, Refactoring, usw. (Und so brauchen Sie nicht zu zahlen für IntelliJ, wenn Sie glücklich mit Eclipse.) Mit ausführlichem Code, um zu schreiben zurück zu gewinnen starke Werkzeugunterstützung scheint wie ein gutes Geschäft jetzt zu mir. Wir werden sehen.

  2. Ich mag, dass ich immer noch Groovy in den Seitenvorlagen zu verwenden, erhalten. Ich fürchte, ich kann am Ende mehr Code in den Vorlagen setzen als ich sollte, aber.

  3. Ich habe keine Erfahrung mit JPA, aber es scheint, wie es ziemlich nah dran ist, was GORM tut für mich, so dass die kühlen.

  4. Die Unterstützung Frühling IOC in Grails ist vollständig transparent, während Spiele-Unterstützung scheint minimal; Allerdings denke ich, dass IOC Art und Weise überstrapaziert ist, und ich bin vollkommen bereit, Hand-Code eines Spring-XML-Mapping auf den seltenen Fällen, dass ich wirklich brauchen. (Einer meiner offenen Fragen ist, dass ich gehe davon aus, dass PPV Transaktionsunterstützung hat, weshalb nicht abgespielt Frühling müssen dafür wie Grails tut, nicht wahr?)

  5. Ich habe noch nie ein Fan von Python gewesen, so dass ich zuckte zusammen, als ich las, dass Play verwendet Python für seinen Build-Skripte. Aber ich stimme zu, dass Grails' GANT Skripte ziemlich langsam laufen. Außerdem finde ich, dass, während GANT eine große Verbesserung gegenüber XML ANT ist es immer noch schwierig ist, den Kopf wickeln sich um die ANT-Konzepte. Die Grails GANT-Skripte sind ziemlich verworren. Also, ich werde um es mit einem offenen Geist gehen.

  6. Die Play „Applikationsmodul“ Modell klingt wie Grails' ‚Plugin‘ Modell zu sein, so dass die kühlen.

  7. Ich bin ganz mit der Play-Dokumentation beeindruckt, dass ich bisher gelesen habe. Ich hatte eine große Anzahl von Fragen gehen in, aber die Hälfte von ihnen waren auf Anhieb beantwortet.

Ich werde wieder berichten später, als ich tauche tiefer in.

Andere Tipps

Ich habe Spiel versucht, und ich bin überzeugt: es hat eine große Aufgabe ein nützliches Entwicklungsmodell zu liefern, die weit einfacher als die meisten Frameworks' ist. nur Neuladen der Webseite im Browser, ohne ein Build-Skript ausgeführt wird oder warten auf eine Umschichtung wert ist viel Entwicklungsgeschwindigkeit: viel mehr wert als alles andere, ist die Laufzeit der Fähigkeit in ‚Entwicklungsmodus‘ .java-Dateien direkt zu analysieren. Die Fehlermeldungen im Browser angezeigt sind wirklich gut zu.

Eine andere Sache, die mich beeindruckte war die allgemeine Ästhetik: Es ist vielleicht eine kleine Sache, dass die Tutorial-Anwendung sieht tatsächlich gut (sowohl den Code und die Webseiten-Design), aber dies erstreckt sich auf den gesamten Rahmen, die API sowie die Dokumentation.

Nachdem er von einem Kollegen stocherte ich es sah, folgte das Tutorial, und bekam süchtig. Erst unmittelbares Feedback direkt in Ihrem Browser heißt, Sie müssen nicht über eine IDE verwenden. Ich liebe Eklipse, aber seien wir ehrlich: Nachdem Sie einige Extras hinzugefügt haben, es ist nicht so stabil wie ein einfacher Texteditor. Auf einem Mac mit Textmate können Sie auch auf der Fehlermeldung in Ihrem Browser und Textmate erscheint mit dem Cursor auf dieser Zeile nach oben.

Test im Spiel ist auch schön gemacht, mit einem Tastendruck ausführen Sie Unit-Tests, Funktionstests und Selen-basierte Tests.

Das Spiel ist spannend, weil es immer noch klein und unkompliziert ist. Es verwendet nur Ameise zu bauen und zwar in 25 Sekunden. Beitrag zur schönen Dokumentation ist eine Frage der Bearbeitung der .textile Dateien und Neuladen der Dokumente in jedem Spiel App.

Das ist, wie ich auf der Suche liquidiere das Tutorial zu übersetzen Scala verwenden, um die Unterstützung Scala Hinzufügen bei Bedarf es so schön wie möglich zu erhalten.

Ich mag es, ich verwende es für kleine Projekte und bisher sieht es perfekt für den Job. Allerdings gibt es eine Sache, die ich sehr vermissen, dass das absichtlich weggelassen worden: Service / DAO / Model Schichten Trennung! Dokumentation sagt es klar, eines der Ziele des Spiels ist es, das „Anemic Datenmodell“ zu vermeiden: http://www.playframework.org/documentation/1.0.1/model

aber nach meiner Erfahrung der klassische Service / DAO / Modell Schichten Trennung Tonnen Entwicklungszeit spart, wenn die Anwendung benötigt Refactoring werden! Mit Spielen Sie sitzen fest mit statischen Methoden, die auf Play-spezifisches Transaktionsmanagement verlassen und Besonderheiten ...

Doch viele Daumen nach oben für: Entwicklungsgeschwindigkeit, Code Reinheit, und am Ende ... Spaß

Ich habe Grails, Tapestry 4/5 und gerade Java / JSP / Frühjahr / Hibernate verwendet.

Ich denke, dies in der richtigen Richtung geht zum ersten Mal seit langer Zeit. Grails war ein wirklich guter erster Schritt, aber spielen! sieht aus wie etwas, das wirklich Beine haben könnte. Scala Unterstützung kommt in 1.1. Wenn es eine Chance gibt, kann ich meinen Controller / Domain in Clojure schreiben, ich bin verkauft;)

Seit einem Jahr und keine sichtbaren Fehler nach 18 kleinen Versionen verwenden wir spielen! 1.2.4 in einer Produktion "Abwesenheiten" Intranet-Anwendung für eine Schule (Schauspieler:> 100 Lehrer,> 700 Studenten, administrativ-Team). Client-Seite hat mit FLEX 4.6 von Adobe geschrieben (sehr schöne Aussicht). Die Daten sind Sende- und Empfangs in AMF3 Format (Cinnamon-Modul). Wir verwenden eine eigene einfache dao Schicht auf Basis von PPV Eclipse und MySql für die DB. Anwendung auf einem virtuellen Linux-Server gespeichert. Ich bin ein sehr Fan Entwickler von Spielen für seine Einfachheit und seine sehr produktiven Ansatz.

Ich mag das Aussehen des Spiels, aber habe es nicht versucht. Vom Scannen durch die docs einer Sache, die war die starke Nutzung von statischen Methoden stand. Von einer Einheit der Ansicht Testpunkt das macht immer alles viel schwieriger (ich denke Mocks), und ist eine Abkehr von dem OO-überall Ansatz in typischer Java-Entwicklung. Vielleicht ist dies der Punkt, aber es ist nur etwas, das mir ein wenig, die weniger begeistert ...

ich zur Zeit Web-Anwendungen bei der Arbeit spielen Rahmen bauen, die massiven Datenverarbeitung der Fall ist. Ich muss sagen, dass die Geschwindigkeit, mit Play-Angebote allein ist signifikant und mehr als das, was RoR bieten kann. Außerdem spielen ist ein Java-basiertes Framework und damit Multi-Threading kann leicht getan werden. Als nächstes ist die schiere Leistung, die Sie erhalten, wenn Sie Java-basierte Module wie Japid und Netty zusammen mit play.It ist wie eine endlose Menge an Tweaking verwenden kann für die Leistung erfolgen. Ein Muss meiner Meinung nach.

Ich bin mit Spielen in einem kleinen Projekt, und scheint genau das zu sein, was sie über gesagt habe. Fähigkeit zur Arbeit mit mehr als einer Datenquelle (beispielsweise mehr als ein Datenbank-Schema): Aber ein Feature, das ich denke, sollte standardmäßig im Rahmen vorhanden sein. Dies ist die einzige fehlende Funktion, die ich bisher gefunden habe.

Viele Grüße, Uilian.

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