play frameworkをエヴァンジェる

46
Play!Frameworkエバンジェる

Upload: ke-m-kamekoopa

Post on 24-May-2015

2.659 views

Category:

Lifestyle


0 download

DESCRIPTION

社内LT用資料

TRANSCRIPT

Page 1: Play frameworkをエヴァンジェる

Play!Frameworkを エバンジェる

Page 2: Play frameworkをエヴァンジェる

アジェンダ

• Play! Frameworkってなに?

• Playのとくちょう

• 実際にechoサーバつくってみたよ

Page 3: Play frameworkをエヴァンジェる

※注

Page 4: Play frameworkをエヴァンジェる

( ^o^)へぇ~Play!のスライドなんだー

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

|@maitani|┗(☋` )┓三

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

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ

Page 5: Play frameworkをエヴァンジェる

※ほとんど整理しなおしただけですごめんなさい

Page 6: Play frameworkをエヴァンジェる

• Play! Frameworkってなに?

• Playのとくちょう

• 実際にechoサーバつくってみたよ

Page 7: Play frameworkをエヴァンジェる

Play! Frameworkってなに?

ざっくり言うと

1.Scala製の(Play ver.2)

2.Railsライクな

3.WEBに特化したWEB開発のための

4.Java/Scala用フレームワーク

Page 8: Play frameworkをエヴァンジェる

• Play! Frameworkってなに?

• Playのとくちょう

• 実際にechoサーバつくってみたよ

Page 9: Play frameworkをエヴァンジェる

Playのとくちょう

なんといっても

Page 10: Play frameworkをエヴァンジェる

Playのとくちょう

さくさく作れる!

Page 11: Play frameworkをエヴァンジェる

Playのとくちょう

JavaのWEB開発にありがちなこと • appコンテナ(tomcatとか)DLしてー

• コンテナの設定してー

• eclipseでプロジェクト作ってー

• プロジェクトの設定してー

• JEEライブラリ落としてきてー

• web.xml書いてー

• ビルドしてー

• war配置してー

• appコンテナ再起動…ふぅ

Page 12: Play frameworkをエヴァンジェる

Playのとくちょう

Playなら

Page 13: Play frameworkをエヴァンジェる

Playのとくちょう

• PlayのバイナリDLしてー

• path通してー

• コマンドでPJスケルトンとIDE用ファイル生成してー

• playサーバ起動コマンド叩いてー

Page 14: Play frameworkをエヴァンジェる

Playのとくちょう

Page 15: Play frameworkをエヴァンジェる

Playのとくちょう

• Playはそれ自体にHTTPサーバ内蔵

• コマンド叩いて準備完了

• 変更を検知して自動ビルド、ホットスワップ

• デフォルトでインメモリRDB、マイグレー

ションツールも内蔵してるよ!

Page 16: Play frameworkをエヴァンジェる

Playのとくちょう

他にもいろいろあるけど

Page 17: Play frameworkをエヴァンジェる

Playのとくちょう

時間がないので割愛

Page 18: Play frameworkをエヴァンジェる

• Play! Frameworkってなに?

• Playのとくちょう

• 実際にechoサーバつくってみたよ

Page 19: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

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

したら

200 OK

Content-Type : application/json

body

{"message" : "ほげほげ"}

を返すシンプルなもの

Page 20: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

http://www.playframework.org/

今回は最新版の2.0.3を使用

Page 21: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

インストールは解凍してPATH通すだけ

Page 22: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

ウィザードでさくっと新規PJ作成

Page 23: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

$ play eclipsify でIDE用ファイル生成

Page 24: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

eclipseにインポートすれば

Page 25: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

開発準備完了

Page 26: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

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

したら

200 OK

Content-Type : application/json

body

{"message" : "ほげほげ"}

を返すシンプルなもの

Page 27: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

ということで

Page 28: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

まずはechoコントローラを作ります

/conf/routes ファイルにルーティングを設定

GET /echo controllers.Echo.index()

play.mvc.Controller を継承したEchoクラスを作成

public class Echo extends Controller { ... }

Page 29: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

こんな感じ

Page 30: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

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

localhost:9000/echo へアクセス デフォルト設定ポートが9000番

Page 31: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

いやっふぅぅぅぅぅぅぅ

Page 32: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

実際はパラメータとして文字列型の引数mを

とるのでroutesを以下のように編集 GET /echo controllers.Echo.index()

GET /echo controllers.Echo.index(m:String)

/echo?m=hogehoge で再度アクセス (サーバ再起動なし!)

Page 33: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

お、おおぅ…?

Page 34: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

Playはコード以外もコンパイル

設定の不整合も静的にエラー検出 今回は、routesの設定とEchoコントローラとの不整合を教えてくれた

以下のようにEchoコントローラを修正 public static Result index() { ... ↓

public static Result index(String m) { ...

Page 35: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

いやっふぅぅぅぅぅぅぅ

Page 36: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

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

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

| Play! |┗(☋` )┓三

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

(’ω’)うわあ…えっ?

Page 37: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

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

Jsonもらくちん

Page 38: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

これだけ

Page 39: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

ξ*'ヮ')ξ .。.:*・゜゚・*

Content-Typeも自動で設定されるわぁ

Page 40: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

200 OK、Content-Type : application/json

Page 41: Play frameworkをエヴァンジェる

実際にechoサーバつくってみたよ

内容もOKっぽい

Page 42: Play frameworkをエヴァンジェる

まとめ

Page 43: Play frameworkをエヴァンジェる

まとめ

• PlayはJavaによるWEB開発を革命する

o 複雑でわかりづらいJEEなんか知らん!

o WEBに完全特化すれば世界はもっとシンプルに

o 高速で軽快な開発

組込みHTTPサーバ

DBマイグレーションツール

TDD、BDDツール付属

ステートレスだからできるサーバ再起動なしの

ホットデプロイ

Page 44: Play frameworkをエヴァンジェる

まとめ

• 非同期IO、WebSocket etc...

o いろいろあるけど時間の都合でかt

Page 45: Play frameworkをエヴァンジェる

PlayでWEB開発をもっと楽しく!

Page 46: Play frameworkをエヴァンジェる

ご静聴ありがとうございました