まちいろが普段愛用しているJavaの開発フレームワーク「Play framework」について紹介したいと思います。

Play frameworkとは?

Play frameworkとは、Webアプリケーションを開発するためのMVCフレームワークです。
バージョン1.xでは、サーバーサイドがJava、クライアントがHTML, Groovy。
バージョン2.xから、サーバーサイドがJavaかScara、クライアントがHTML, Scara。
というプログラミング言語です。

Play frameworkを利用するメリット

まちいろのスクラッチ開発は、ほとんどこのPlay frameworkをJavaで利用しています。
元々Javaには慣れていましたが、Play frameworkはJ2EEの重量的な部分が取り除かれており、Ruby on Railsのような軽量フレームワークとなっています。

J2EEに慣れている人からすると邪道!と思われる部分もありますが、Modelでは、getter, setterは使わず、プロパティにpublicでアクセスしたりと、今までの常識を超えたフレームワークと言えます。

Play framework 1.2.xから利用していますが、何より開発スピードが早くなり、手軽でサクサク作れるところに惚れ込んでいます。

では、どの辺りが具体的に良いのか?

1. Railsっぽい

 Model, Controller, Viewの構成。まちいろではこれに加えて、Service層を用意して、
 DRY原則(繰り返しを避けよ)
 をフレームワーク側の仕組みとして実現しやすくされています。

2. 導入が簡単

 開発環境構築も、動作環境構築も簡単です。これもRailsっぽい感じです。

3. 開発中のコンパイル不要

 サーバーサイドもJavaで開発しながら、明示的にコンパイルする必要がありません。
 (裏で勝手にされています)
 これはシステムの動作モードにもよるのですが、まるでスクリプト言語で開発しているような手軽さが今までのJava開発の常識を超えていると思います。

4. Job

 バッチ処理的なものや、定期実行はJobを使えば簡単に実現できます。
 元々Quarzというのがありましたが、それの作法で、@Every(“60s”)ってノリでアノテーションでタイミングを指定したplay.jobs.Jobを継承したクラス内で定期実行の実装を書くだけ。
 CRONとかタスクスケジューラーに設定するレガシーなやり方からおさらばできますね。
 Play2になるとAkkaとかもあります。Akkaについては、また機会があれば書きたいと思います。

 
それ以外にもメリットや特徴はいろいろありますが、Playに慣れるともう手放せません。

 
Playでのシステム開発は楽しくて仕方無いので、どんどんアプリケーションを作っていきたいと思います。
今回はPlay 1.2.xよりの話が多かったので、これからは2.1.x系についても書いていきます。