Play!Frameworkを
   エバンジェる
アジェンダ

• Play! Frameworkってなに?
• Playのとくちょう
• 実際にechoサーバつくってみたよ
※注
( ^o^)へぇ~Play!のスライドなんだー

( ˘⊖˘) 。o(あれ?BPStudyで聞いた内容ばっかり…?)

|@maitani|┗(☋` )┓三

( ◠‿◠ )☛そこに気づいたか…消えてもらう

   ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ
※ほとんど整理しなおしただけですごめんなさい
• Play! Frameworkってなに?
• Playのとくちょう
• 実際にechoサーバつくってみたよ
Play! Frameworkってなに?

ざっくり言うと
1.Scala製の(Play ver.2)
2.Railsライクな
3.WEBに特化したWEB開発のための
4.Java/Scala用フレームワーク
• Play! Frameworkってなに?
• Playのとくちょう
• 実際にechoサーバつくってみたよ
Playのとくちょう




      なんといっても
Playのとくちょう




   さくさく作れる!
Playのとくちょう
JavaのWEB開発にありがちなこと
•   appコンテナ(tomcatとか)DLしてー
•   コンテナの設定してー
•   eclipseでプロジェクト作ってー
•   プロジェクトの設定してー
•   JEEライブラリ落としてきてー
•   web.xml書いてー
•   ビルドしてー
•   war配置してー
•   appコンテナ再起動…ふぅ
Playのとくちょう




      Playなら
Playのとくちょう
•   PlayのバイナリDLしてー
•   path通してー
•   コマンドでPJスケルトンとIDE用ファイル生成してー
•   playサーバ起動コマンド叩いてー
Playのとくちょう




         完
Playのとくちょう
•   Playはそれ自体にHTTPサーバ内蔵
•   コマンド叩いて準備完了
•   変更を検知して自動ビルド、ホットスワップ

•   デフォルトでインメモリRDB、マイグレー
    ションツールも内蔵してるよ!
Playのとくちょう




 他にもいろいろあるけど
Playのとくちょう




  時間がないので割愛
• Play! Frameworkってなに?
• Playのとくちょう
• 実際にechoサーバつくってみたよ
実際にechoサーバつくってみたよ

GET http://localhost:9000/echo?m=ほげほげ

したら
200 OK
Content-Type : application/json
body
 {"message" : "ほげほげ"}
を返すシンプルなもの
実際にechoサーバつくってみたよ
http://www.playframework.org/
今回は最新版の2.0.3を使用
実際にechoサーバつくってみたよ




インストールは解凍してPATH通すだけ
実際にechoサーバつくってみたよ

ウィザードでさくっと新規PJ作成
実際にechoサーバつくってみたよ

$ play eclipsify でIDE用ファイル生成
実際にechoサーバつくってみたよ




  eclipseにインポートすれば
実際にechoサーバつくってみたよ

開発準備完了
実際にechoサーバつくってみたよ

GET http://localhost:9000/echo?m=ほげほげ

したら
200 OK
Content-Type : application/json
body
 {"message" : "ほげほげ"}
を返すシンプルなもの
実際にechoサーバつくってみたよ




     ということで
実際にechoサーバつくってみたよ
まずはechoコントローラを作ります

/conf/routes ファイルにルーティングを設定
   GET /echo controllers.Echo.index()


play.mvc.Controller を継承したEchoクラスを作成
   public class Echo extends Controller { ... }
実際にechoサーバつくってみたよ
こんな感じ
実際にechoサーバつくってみたよ



開発モードでサーバを起動して確認してみる
 $ play run (開発モードで起動)


localhost:9000/echo へアクセス
 デフォルト設定ポートが9000番
実際にechoサーバつくってみたよ
いやっふぅぅぅぅぅぅぅ
実際にechoサーバつくってみたよ
実際はパラメータとして文字列型の引数mを
とるのでroutesを以下のように編集
 GET /echo controllers.Echo.index()
   ↓
 GET /echo controllers.Echo.index(m:String)


/echo?m=hogehoge で再度アクセス
(サーバ再起動なし!)
実際にechoサーバつくってみたよ
お、おおぅ…?
実際にechoサーバつくってみたよ
Playはコード以外もコンパイル
  設定の不整合も静的にエラー検出
    今回は、routesの設定とEchoコントローラとの不
    整合を教えてくれた


以下のようにEchoコントローラを修正
 public static Result index() { ...
  ↓
 public static Result index(String m) { ...
実際にechoサーバつくってみたよ
いやっふぅぅぅぅぅぅぅ
実際にechoサーバつくってみたよ


( ^o^)mをok()メソッドに渡せば完成だな

( ˘⊖˘) 。o(あれ?確か返却値はjson…。)

| Play! |┗(☋` )┓三

( ◠‿◠ )☛そこに気づいたか…でも消えてもらわなくていいよ

               (’ω’)うわあ…えっ?
実際にechoサーバつくってみたよ




標準でバンドルされてるライブラリを使えば

      Jsonもらくちん
実際にechoサーバつくってみたよ

これだけ
実際にechoサーバつくってみたよ




ξ*'ヮ')ξ   .。.:*・゜゚・*
 Content-Typeも自動で設定されるわぁ
実際にechoサーバつくってみたよ
200 OK、Content-Type : application/json
実際にechoサーバつくってみたよ
内容もOKっぽい
まとめ
まとめ
•   PlayはJavaによるWEB開発を革命する
    o   複雑でわかりづらいJEEなんか知らん!
    o   WEBに完全特化すれば世界はもっとシンプルに
    o   高速で軽快な開発
           組込みHTTPサーバ
           DBマイグレーションツール
           TDD、BDDツール付属
           ステートレスだからできるサーバ再起動なしの
            ホットデプロイ
まとめ
•   非同期IO、WebSocket etc...
    o   いろいろあるけど時間の都合でかt
PlayでWEB開発をもっと楽しく!
ご静聴ありがとうございました

Play frameworkをエヴァンジェる