SlideShare una empresa de Scribd logo
1 de 33
Play!framework 2.0 の裏側




     Play!framework2.0ソースコードリーディング
お前誰よ(Who are you?)
@Masahito
仕事でPlay! frameworkを使っています。

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

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




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

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

WebSocketのデモ

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

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

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

Web開発環境の変化への対応(ready for real-time Web applications)

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

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



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



         guillaumeBort
Play! Framework2.0とは?
1系ではJavaで書かれていましたが、2.0系はScalaで
書かれるようになりました。Play!1X+Scalaの延長線
上に2.0系があると考えてよいです。

開発モードならばサーバー再起動不要で開発できま
す。

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

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

Java Servelet APIは使っていません。現状ではwar化
する機能はありません。(2.1で対応予定?)

Controllerは 普通のControllerと WebSocket専用の
Controllerの2種類になりました。

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

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

Simple Build Tools の略.Scala製

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

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

Play!1.X系では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!独自

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

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

FAQ
Play!2.0リリースされました

2012/03/14でついにリリース!!おめでとう

Githubのレポジトリは”2.1-SNAPSHOT”に

今はBugfixがすごい勢いで行われています。2.0.1が出
るらしいよ。

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

$ play new myWebApp
$ play run myWebApp
Model
Play!2.0ではjdbcでの接続を行うAPIが存在
つなぐところ以外は好きなライブラリを
つかえばOK
Anorm(アノーム)

 一応Play!2.0 の標準。SQLベースのDB操作API


ScalaQuery
「Squery使ってるよ」という投稿がMLに
Play!2.0で現状できないこと



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

 認証認可(1X系でのSecureモジュール)
FW側では提供されないかも。
モジュールの作成が必要か
 warファイルの出力

   v2.1で対応予定?
Play!2.0で現状できないこと




 java doc/ scala doc
 DB構造の自動変更

   各ライブラリで作成
Play!2.0とmodule



基本的に機能追加はmodule前提

ここで公開されています。ユーザーが追加することも
可能 >> https://github.com/playframework/Play20/
wiki/Modules
Play!2.0のテンプレートの注意点



 標準ではCSRF対策が施されていません。

 “Authenticity Token module”は入れておいた方がいい
 でしょう。 >> https://github.com/orefalo/play2-
 authenticitytoken
本日の内容
Play! framework 2.0と1系の違いを説明

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

FAQ
Play1.Xと2.0の今後?
  3/30∼31にかけてMLを多いにわかせる話題がありま
  した

  “Open Letter to Play Framework Developers”


  http://groups.google.com/group/play-framework/
      browse_thread/thread/1c66cf065cd5947/
aab1fdc00b023005?lnk=gst&q=Roman++Open+Letter
         +to+Play+Framework+Developers+#
Play1.Xと2.0の今後?

  「Play!2.0はなんでScalaベースなんだ!」「1Xででき
  たことが何にもできないだろうが、ふざけんな」



  http://groups.google.com/group/play-framework/
      browse_thread/thread/1c66cf065cd5947/
aab1fdc00b023005?lnk=gst&q=Roman++Open+Letter
         +to+Play+Framework+Developers+#
Play1.Xと2.0の今後?

  Giaullme「We are building a framework for the future,
  not for the past.」



  http://groups.google.com/group/play-framework/
      browse_thread/thread/1c66cf065cd5947/
aab1fdc00b023005?lnk=gst&q=Roman++Open+Letter
         +to+Play+Framework+Developers+#
Q. Play!2.0ができたってこと
は1系ってオワコンなの?
A. ちがうよ!全然違うよ!
Play!1系のメンテナンスはまだまだ続きます。

Play!1.2.5は4月に出るらしい。

メイン開発者は交代。原則コミュニティベー
スになる?

モジュールの開発者で1系の対応をしたくない人
もいるみたいのなのでそこは心配
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
一緒に翻訳してくれる方を募集しています!!
ご清聴ありがとうございました

Más contenido relacionado

Destacado (6)

Java Play Restful JPA
Java Play Restful JPAJava Play Restful JPA
Java Play Restful JPA
 
やさしいIteratee入門
やさしいIteratee入門やさしいIteratee入門
やさしいIteratee入門
 
Java Play RESTful ebean
Java Play RESTful ebeanJava Play RESTful ebean
Java Play RESTful ebean
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIteratee
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
Developing an Akka Edge1-3
Developing an Akka Edge1-3Developing an Akka Edge1-3
Developing an Akka Edge1-3
 

Similar a Play2の裏側

Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
Kazuhiro Hara
 

Similar a Play2の裏側 (20)

Dev love関西 forslideshare
Dev love関西 forslideshareDev love関西 forslideshare
Dev love関西 forslideshare
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
Play勉強会 第3回
Play勉強会 第3回Play勉強会 第3回
Play勉強会 第3回
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころsbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
 
PlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.keyPlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.key
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
 
実戦Scala
実戦Scala実戦Scala
実戦Scala
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...
 
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
 

Más de masahitojp (14)

Python と型ヒントとその使い方
Python と型ヒントとその使い方Python と型ヒントとその使い方
Python と型ヒントとその使い方
 
Enjoy Type Hints and its benefits
Enjoy Type Hints and its benefitsEnjoy Type Hints and its benefits
Enjoy Type Hints and its benefits
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Framework
 
Presentation kyushu-2018
Presentation kyushu-2018Presentation kyushu-2018
Presentation kyushu-2018
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Python
 
The Benefits of Type Hints
The Benefits of Type HintsThe Benefits of Type Hints
The Benefits of Type Hints
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
 
chat bot framework for Java8
chat bot framework for Java8chat bot framework for Java8
chat bot framework for Java8
 
Akka meetup 2014_sep
Akka meetup 2014_sepAkka meetup 2014_sep
Akka meetup 2014_sep
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
Pyconsg2014 pyston
Pyconsg2014 pystonPyconsg2014 pyston
Pyconsg2014 pyston
 
Pykonjp2014
Pykonjp2014Pykonjp2014
Pykonjp2014
 
Riak map reduce for beginners
Riak map reduce for beginnersRiak map reduce for beginners
Riak map reduce for beginners
 
5分で説明する Play! scala
5分で説明する Play! scala5分で説明する Play! scala
5分で説明する Play! scala
 

Play2の裏側

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n