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
一緒に翻訳してくれる方を募集しています!!
ご清聴ありがとうございました

More Related Content

KEY
Play!framework2.0 introduction
KEY
Play2 translate 20120714
PDF
Play framework 2.0のおすすめと1.2からのアップグレード
PDF
Jenkins に XFD を追加してみると
PDF
Introduction of Rhodes
PDF
Firefox FAQ
PDF
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
PDF
20130720 firefox os勉強会
Play!framework2.0 introduction
Play2 translate 20120714
Play framework 2.0のおすすめと1.2からのアップグレード
Jenkins に XFD を追加してみると
Introduction of Rhodes
Firefox FAQ
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
20130720 firefox os勉強会

Viewers also liked (6)

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

Similar to Play2の裏側 (20)

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

More from masahitojp (14)

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

Play2の裏側

Editor's Notes