#PlayBayに参加したぜ | Pimp my Code. @wataru420

Pimp my Code. @wataru420

My name is Wataru Fukunaga.

PlayBayというPlayFlrameworkのイベントに参加したよ。
パソナビルは天井も広くて入り口に野菜が生えてたり、なかなかすごかった。
参加者も40人ぐらいいてPlayとScalaの勢いを感じた。

Pimp my Code. @wataru420

Play!の今

@ikeike443さんの発表。

今は過渡期。1.X と 2.Xの狭間にいる。
JavaからScalaへ移行している段階。

1系はJavaで書かれたJavaのフレームワーク。Scalaはプラグインでサポート。
2.0はScalaで書かれたScalaとJavaのフレームワーク。ScalaもJavaもサポートする。

1.2.4は完成形
Javaでクイックに開発するのに向いてる。
必要なものはほぼある状態なのでプロダクションで使えるレベル。

2.0はまだRC。
Scala on Railsになるはず。プラグインはまだこれから。
プロダクションで使うのはおすすめできない。

ただ、Scalaだったら2.0を追いかけるべき!
パッチを送るべし。翻訳も手伝ってね☆

Play1.xの特徴

シェアード・ナッシング・アーキテクチャ
非同期IOをサポートしている。
SASSやCoffieScript、MongoDB、Heroku等の最新の技術にも対応しているのが良いところ。
何より生産性が高い。再起動無しでがんがんいける仕組みになっている。

フレームワーク自体が自然にステートレスになる仕組みになっている。
例えばHttpSessionがない。sessionはCookieに書いているだけ。
セッション管理はMemcachedを使うのがおすすめ。
ステートレスなのでスケールアウトが容易。自然にスケールアウトできるアプリを作っていけるのが素晴らし。

Nettyを使っている。非同期I/Oをサポート。

node.jsよりI/Oが速い、がレンダーが遅い(groovyが遅いから?)。
warもサポートしてるよ。

PlayFramework1.2.4における web socket

@kara_dさん

WebSocketをMVCに載せる意味
アプリとシームレスに統合できる。
設計が容易。
認証系、データ管理系の実装が楽。
ただ、負荷を考えるとサーバはわけるほうがいいかも。
playのWebSocketはplayが動いているポートなのでApacheのmod_proxyを使用している場合は注意が必要。

WebSocketはチャットを作るためのものじゃない。
その考えから外れてつくると面白いアプリができるかも。

Play!Framework2.0 一巡り

@Masahitoさん

Typesafe StackがPlayFrameworkを採用した。
Scalaのソフトウェアプラットフォームに仲間入りしたということ。

Play2.0はWeb開発環境の変化に対応するために作られた。
JVM言語への対応(主にScala向け)とビルドシステムの変更(SBTを使う)。 1系ではPythonを使っていた。

JavaからScalaに移行、1系と同様サーバー再起動不要で開発が可能。
IDEも使うことが可能(Intelli Jとeclipseは確認済み)で、Paas環境での運用も可能となっている。
ちなみに、開発者はTextMateで開発してるとか。
Nettyがベースなのは変わらず。WebSocketの機能は基本Nettyを使っている。
Controllerは普通のControllerとWebSocket用の2種類。
play2.0のJobはAkkaベースになった。AkkaはScalaのActorを高機能かつ高速にしたもの。

SBTはSimpleBuildTools。Mavenのようなもの。
ビルドシステムをSBTに移行したことでビルド速度がかなり向上した。

Play1.xはWebMVCが密結合。2.0では粗結合。粗結合っていいよねー

Play2.0 scalaはPlay1.x+Scalaを発展させたもの。
2012/03/06現在 RC3、そろそろでるか?

Play!2.0でできない事

管理画面(CRUDモジュール)はない。
認証認可(Secureモジュール)は外部モジュールで対応するしかない。
warファイルの出力が現在できない。(今後対応予定)
jaca doc/ scala docの出力機能はない。
DB構造の自動変更も外部モジュールでしかできない。

Play1.xはまだまだメンテナンスされる。全然現役。
ただ2.0の動向には注目しといたほうがいいよー。

Play2.0 + pjax

@gakuzzzzさんの発表

Ajax
リンクできない
履歴が残らない
などなど

pjaxを使えば大丈夫!

簡単にいうとGitHubのサイトみたいなやつ。
一件Ajaxみたいなんだけど、しっかりとURLがあって、ブラウザの戻るが使えたりする。
pjaxはGitHubの中の人が作ったという噂。

スライドはこちら
http://gakuzzzz.github.com/play2.0-pjax-demo/
pjaxはAjaxの弱点を克服した素晴らしい技術だなー。

まとめ

PlayとScalaは確実にきてる。pjaxのデモとかみてると、Scalaって本当に強力だなと思うし、Springとかのでかいフレームワークじゃないのをみんな求めてると思う中、Playっていいよなーって思った次第です。
Play!2.0は注目だなー

Play Framework CookbookPlay Framework Cookbook
Alexander Reelsen

Packt Publishing 2011-07-31
売り上げランキング : 20443

Amazonで詳しく見る