次の新しい Java Web フレームワークに出くわしました: Play
http://www.playframework.org/documentation/1.0/home
これほど素晴らしい機能のリストがあるのに、これまで聞いたことがなかったことにかなり驚いています...
Java Web 開発が約束された土地のように聞こえます...
誰もそれを試しましたか?実際の経験はありますか?勉強する価値があると思いますか?
次の新しい Java Web フレームワークに出くわしました: Play
http://www.playframework.org/documentation/1.0/home
これほど素晴らしい機能のリストがあるのに、これまで聞いたことがなかったことにかなり驚いています...
Java Web 開発が約束された土地のように聞こえます...
誰もそれを試しましたか?実際の経験はありますか?勉強する価値があると思いますか?
私は Play を試してみましたが、感銘を受けました。ほとんどのフレームワークよりもはるかに単純な便利な開発モデルを提供する素晴らしい仕事をしています。何よりも、ランタイムが「開発モード」で .java ファイルを直接解析できることには大きな価値があります。ビルド スクリプトを実行したり、再デプロイを待機したりせずにブラウザで Web ページをリロードするだけで、多くの開発速度が得られます。ブラウザに表示されるエラー メッセージも非常に優れています。
私が感銘を受けたもう 1 つの点は、全体的な美学です。チュートリアル アプリケーションが実際に (コードと Web ページのデザインの両方で) よく見えるのはおそらく小さなことですが、これはフレームワーク全体、API、およびドキュメントにまで及びます。
私はそれが好きです、私はそれを小さなプロジェクトに使用しています、そして今のところそれは仕事に完璧に見えます. ただし、意図的に省略されている非常に見逃していることが 1 つあります。それは、サービス/DAO/モデル レイヤーの分離です。ドキュメンテーションは、Play の目標の 1 つは「Anemic データ モデル」を回避することであると明確に述べています: http://www.playframework.org/documentation/1.0.1/model
しかし、私の経験では、従来のサービス/DAO/モデル レイヤーの分離により、アプリケーションのリファクタリングが必要な場合に開発時間を大幅に節約できます。Play では、Play 固有のトランザクション管理と特殊性に依存する静的メソッドに固執しています...
ただし、開発速度、コードのクリーンさ、そして最後に... 楽しいことに多くの人が賛成しています!
私は Grails、Tapestry 4/5、およびそのままの Java/JSP/Spring/Hibernate を使用しました。
これは久しぶりに正しい方向に進んでいると思います。Grails は本当に良い第一歩でしたが、Play! 本当に足がありそうなもののように見えます。Scala サポートは 1.1 で提供されます。コントローラー/ドメインを Clojure で記述できる可能性がある場合、私は売られています ;)
1年間で、18回の小さなリリース後に目に見えるバグがないため、Playを使用しています。1.2.4学校向けのプロダクション「不在」イントラネットアプリケーション(俳優:> 100人の教師、> 700人の学生、管理チーム)。クライアント側はAdobeのFLEX4.6で書かれています(とても美しい景色)。データはAMF3形式(Cinnamonモジュール)で送受信されます。DBにはJPAEclipseLinkとMySqlに基づく独自の単純なdaoレイヤーを使用します。アプリケーションはLinux仮想サーバーに保存されます。私は、そのシンプルさと非常に生産的なアプローチのために、Playの非常にファンの開発者です。
私は現在、大量のデータ処理を行う play フレームワークを使用して、職場で Web アプリケーションを構築しています。プレイだけで提供される速度は重要であり、RoR が提供できる以上のものであると言わざるを得ません。また、play は Java ベースのフレームワークであるため、マルチスレッド化が容易です。次は、Japid や Netty などの Java ベースのモジュールを play と一緒に使用したときに得られる純粋なパフォーマンスです。パフォーマンスのために無限の微調整を行うことができるようです。私の意見では試してみる必要があります。
Play の見た目は気に入っていますが、試したことはありません。ドキュメントをざっと見てみると、静的メソッドの多用が目立っていました。単体テストの観点からすると、これは常に物事をはるかに困難にし (私はモックを考えています)、典型的な Java 開発における OO-everywhere アプローチからの逸脱です。これがポイントかもしれませんが、それは私を少し熱狂させたものです...
私は小さなプロジェクトで Play を使用していますが、まさに彼らが言っていることのようです。しかし、フレームワークにデフォルトで存在するべきだと思う機能が 1 つあります。それは、複数のデータソースを操作する機能 (複数のデータベース スキーマを使用するなど) です。これは、私が今まで見つけた唯一の不足している機能です。
よろしく、ユリアン。