play2+scala事始め

37
Play2+Scala 事始め by Asami Abe 1385日月曜日

Upload: asami-abe

Post on 24-Jan-2015

1.634 views

Category:

Technology


2 download

DESCRIPTION

2013/08/03(土) PlayFramework関西ビギナーズ 第2回にて発表。(若干修正を加えています。) PlayFramework関西ビギナーズwiki https://github.com/SAMMY7th/play_kb/wiki

TRANSCRIPT

Page 1: Play2+Scala事始め

Play2+Scala事始めby Asami Abe

13年8月5日月曜日

Page 2: Play2+Scala事始め

自己紹介Abe Asami “きの子” (フリーエンジニア)http://nocono.net/Twitter: @aa7th

使用言語:Java、C#、Scala     PHPはたしなむ程度

13年8月5日月曜日

Page 3: Play2+Scala事始め

私とPlayFramework

13年8月5日月曜日

Page 4: Play2+Scala事始め

私とPlayFramework

• 初はPlay1.2+Javaから始めました

13年8月5日月曜日

Page 5: Play2+Scala事始め

私とPlayFramework

• 初はPlay1.2+Javaから始めました

•サービス作りました(http://geragera.jp/)

13年8月5日月曜日

Page 6: Play2+Scala事始め

私とPlayFramework

• 初はPlay1.2+Javaから始めました

•サービス作りました(http://geragera.jp/)

•勉強会開催したり案件をこなしたり

13年8月5日月曜日

Page 7: Play2+Scala事始め

私とPlayFramework

• 初はPlay1.2+Javaから始めました

•サービス作りました(http://geragera.jp/)

•勉強会開催したり案件をこなしたり

• Play2+Scala案件はまだないけど、

勉強中

13年8月5日月曜日

Page 8: Play2+Scala事始め

今日の内容

13年8月5日月曜日

Page 9: Play2+Scala事始め

今日の内容

•用意したサンプルコードを見ながら、自分がPlay2+Scalaにチャレンジしたときにつまづいたり、マニュアルにない小ネタメインで

13年8月5日月曜日

Page 10: Play2+Scala事始め

Play2導入

13年8月5日月曜日

Page 11: Play2+Scala事始め

インストール

• JDK+Scalaを事前にインストールしておく

• Playパッケージをダウンロード→パスを通す

• Homebrewでインストール(brew install play)

• 複数バージョンいれたいならpvm

(https://github.com/kaiinkinen/pvm)

※sbtにより自動インストールされるため、事前準備の必要はないそうです。間違っていましたすみません。

13年8月5日月曜日

Page 12: Play2+Scala事始め

Playサーバについて

13年8月5日月曜日

Page 13: Play2+Scala事始め

Playサーバについて

•高速なので、本番運用もビルトインサーバで可能

13年8月5日月曜日

Page 14: Play2+Scala事始め

Playサーバについて

•高速なので、本番運用もビルトインサーバで可能

•設定は全てconfファイルに書く

13年8月5日月曜日

Page 15: Play2+Scala事始め

Playサーバについて

•高速なので、本番運用もビルトインサーバで可能

•設定は全てconfファイルに書く

•開発・本番用と分けてconfファイルを用意しておけば、切り替えも簡単

13年8月5日月曜日

Page 16: Play2+Scala事始め

DBアクセスライブラリ

13年8月5日月曜日

Page 17: Play2+Scala事始め

DBアクセスライブラリ

13年8月5日月曜日

Page 18: Play2+Scala事始め

DBアクセスライブラリ

•標準はAnorm

13年8月5日月曜日

Page 19: Play2+Scala事始め

DBアクセスライブラリ

•標準はAnorm

•ちょっと使い辛い・・・

13年8月5日月曜日

Page 20: Play2+Scala事始め

DBアクセスライブラリ

•標準はAnorm

•ちょっと使い辛い・・・

•好きなライブラリを使用できる

(ScalikeJDBC,Slick,ScalaActiveRecord,Squerylなど)

13年8月5日月曜日

Page 21: Play2+Scala事始め

Salat

13年8月5日月曜日

Page 22: Play2+Scala事始め

Salat

• MongoDB用アクセスライブラリ

13年8月5日月曜日

Page 23: Play2+Scala事始め

Salat

• MongoDB用アクセスライブラリ

•今回はPlay-Salatを使用

(https://github.com/leon/play-salat)

13年8月5日月曜日

Page 24: Play2+Scala事始め

Scalaの文法

13年8月5日月曜日

Page 25: Play2+Scala事始め

Option型

13年8月5日月曜日

Page 26: Play2+Scala事始め

Option型

•値があるかどうか分からない型

13年8月5日月曜日

Page 27: Play2+Scala事始め

Option型

•値があるかどうか分からない型

•値がある場合・・・Some

値がない場合・・・None

13年8月5日月曜日

Page 28: Play2+Scala事始め

Option型

•値があるかどうか分からない型

•値がある場合・・・Some

値がない場合・・・None

• getメソッドで値を取得できる

13年8月5日月曜日

Page 29: Play2+Scala事始め

使用例 opt match { case Some(x) => println(x) case None => println(“値なし”) }

NullPointerExceptionを回避できる

(余談)良く似たものに例外処理用のEitherがある

13年8月5日月曜日

Page 30: Play2+Scala事始め

cass class

13年8月5日月曜日

Page 31: Play2+Scala事始め

cass class

•色んな便利メソッドを自動生成

13年8月5日月曜日

Page 32: Play2+Scala事始め

cass class

•色んな便利メソッドを自動生成

• apply・・・インスタンス生成

unapply・・・情報を抽出

13年8月5日月曜日

Page 33: Play2+Scala事始め

Form

13年8月5日月曜日

Page 34: Play2+Scala事始め

Form val entryForm = Form( mapping ( "name" -> nonEmptyText ) ((name: String) => Entrant(name = name)) ((entrant: Entrant) => Some(entrant.name)) )

フォームフィールド

構築関数

分解関数

13年8月5日月曜日

Page 35: Play2+Scala事始め

Form val entryForm = Form( mapping ( "name" -> nonEmptyText ) (Entrant.apply)(Entrant.unapply) )

13年8月5日月曜日

Page 36: Play2+Scala事始め

おすすめの本Scala逆引きレシピ(翔泳社)

13年8月5日月曜日

Page 37: Play2+Scala事始め

おすすめの本

• Play2の情報も載っています

Scala逆引きレシピ(翔泳社)

13年8月5日月曜日