Play!framework 2.0 一巡り




         PlayBay @ Tokyo
お前誰よ(Who are you?)
@Masahito
仕事でPlay! frameworkを使っています。

Java/ScalaはPlay!を通してまだまだ勉強中。

主にPython系の勉強会に出没しています。
Play!framework2.0の
ドキュメント翻訳やってます




 一緒に翻訳してくれる方を募集しています!!
本日の内容
Play! framework 2.0と1系の違いを説明

Play!framework の現状と今後を説明します

WebSocketのデモ

FAQ
本日の内容
Play! framework 2.0と1系の違いを説明

Play!framework の現状と今後を説明します

WebSocketのデモ

FAQ
その前にPlay!2.0はそもそもなんで作られ
たの?

Web開発環境の変化への対応

Java以外のJVM言語への対応(主にScala向け)

ビルドシステムの変更(SBTを使う)
メイン開発者は変わったの?



       中心人物は変わっていません



         guillaumeBort
Play! Framework2.0とは?
1系ではJavaで書かれていましたが、2.0系はScalaで
書かれるようになりました。

サーバー再起動不要で開発できます。

開発時にIDEを使うことも可能です。(Intelli JもOK)

Paas環境(Heroku)で運用可能
Play! Framework2.0とは?
1系と同様Nettyがベースになっています。WebSocket
の機能は基本Nettyを使っています。

Controllerは 普通のControllerと WebSocket専用の
Controllerができました。

JobはAkkaベースに!
Play! Framework2.0とは?

もっと詳しい内容はこちらを参照
 http://playdocja.appspot.com/2.0
SBT

Simple Build Tools の略.Scala製

ライブラリを取って来たり、ソースのビルドを行う

  Mavenとかivy的なイメージ
ビルド速度の向上
さらにザックり説明

Play!1系ではWeb MVCが密結合

Play!2.0ではWebMVCが粗結合
  各機能が別々のアプリになっていて、
各ライブラリを組み合わせて機能を実現

MVC間で連携する機能は現状弱いです
1.2.X   2.0
簡単な比較
              テンプレー                    ビルドシステ
                          DBアクセス
                  ト                      ム
                        JPA(Hibernat
 Play! 1系     Groovyベース                Play!独自
                             e)

Play!+Scala   Scalaベース      Anorm      Play!独自


 Play!2.0     Scalaベース      Anorm        SBT
本日の内容
Play! framework 2.0と1系の違いを説明

Play!framework の現状と今後を説明します

WebSocketのデモ

FAQ
Play!2.0はまだまだRC版


2012/03/06現在 RC3 (そろそろでる?)

今はBugfix中。たまーに重要なバグを直していてびっ
くりします><
導入&アプリ作成

$ play new myWebApp
$ play run myWebApp
Model
Play!2.0ではjdbcでの接続を行うAPIが存在
つなぐところ以外は好きなライブラリを
つかえばOK
Anorm(アノーム)
一応Play!2.0 の標準。SQLベースのDB操作API
 Magic[T] メソッドを使うことでJPA風の
APIを作ることが可能
ScalaQuery
Anorm
// Create an SQL query
val selectCountries = SQL("Select * from Country")

// Transform the resulting Stream[Row] as a
List[(String,String)]
val countries = selectCountries().map(row =>
    row[String]("code") -> row[String]("name")
).toList
Play!2.0で現状できないこと

管理画面(1X系でのCRUDモジュール)

認証認可(1X系でのSecureモジュール)

   モジュールで対応?
warファイルの出力

     今後対応予定
java doc/ scala doc
DB構造の自動変更
                      各ライブラリで作成
本日の内容
Play! framework 2.0と1系の違いを説明

Play!framework の現状と今後を説明します

WebSocketのデモ

FAQ
本日の内容
Play! framework 2.0と1系の違いを説明

Play!framework の現状と今後を説明します

WebSocketのデモ

FAQ
Q. Play!2.0ができたってこと
は1系ってオワコンなの?
A. ちがうよ!全然違うよ!
Play!1系のメンテナンスはまだまだ続きます。
モジュールの開発者で1系の対応をしたくない人
もいるみたいのなのでそこは心配

1から2への変換機能は提供されないので、
先を見据えて2.0について学ぶ必要あり
Probably since it needs more
           bug fixes and documentation
           than Play
           1.2.x that is 3 years old and well
           documented.
Gia

      http://groups.google.com/group/play-framework
      browse_thread/thread/615888c1ed2fc4da?pli=1
まとめ
Play! framework 2.0 はPlay!frameworkに対するセカン
ドシステム。Scalaとの親和性が向上。

機能が増えた訳ではない。むしろPlay!本体の機能を
減らし、外部ライブラリを組み合わせて機能を実現
する方針。

恐れずに使ってみると良いと思います。Controller /
JSON の使い勝手の良さは感動ものです!
情報源

ML : http://groups.google.com/group/play-framework
github: https://github.com/playframework/play20
Doc: https://github.com/playframework/Play20/wiki
ja   : https://github.com/playframework-ja/Play20/wiki
一緒に翻訳してくれる方を募集しています!!
ご清聴ありがとうございました

Play!framework2.0 introduction