Play2+Scala事始め
-
Upload
asami-abe -
Category
Technology
-
view
1.633 -
download
2
description
Transcript of Play2+Scala事始め
Play2+Scala事始めby Asami Abe
13年8月5日月曜日
自己紹介Abe Asami “きの子” (フリーエンジニア)http://nocono.net/Twitter: @aa7th
使用言語:Java、C#、Scala PHPはたしなむ程度
13年8月5日月曜日
私とPlayFramework
13年8月5日月曜日
私とPlayFramework
• 初はPlay1.2+Javaから始めました
13年8月5日月曜日
私とPlayFramework
• 初はPlay1.2+Javaから始めました
•サービス作りました(http://geragera.jp/)
13年8月5日月曜日
私とPlayFramework
• 初はPlay1.2+Javaから始めました
•サービス作りました(http://geragera.jp/)
•勉強会開催したり案件をこなしたり
13年8月5日月曜日
私とPlayFramework
• 初はPlay1.2+Javaから始めました
•サービス作りました(http://geragera.jp/)
•勉強会開催したり案件をこなしたり
• Play2+Scala案件はまだないけど、
勉強中
13年8月5日月曜日
今日の内容
13年8月5日月曜日
今日の内容
•用意したサンプルコードを見ながら、自分がPlay2+Scalaにチャレンジしたときにつまづいたり、マニュアルにない小ネタメインで
13年8月5日月曜日
Play2導入
13年8月5日月曜日
インストール
• JDK+Scalaを事前にインストールしておく
• Playパッケージをダウンロード→パスを通す
• Homebrewでインストール(brew install play)
• 複数バージョンいれたいならpvm
(https://github.com/kaiinkinen/pvm)
※sbtにより自動インストールされるため、事前準備の必要はないそうです。間違っていましたすみません。
※
13年8月5日月曜日
Playサーバについて
13年8月5日月曜日
Playサーバについて
•高速なので、本番運用もビルトインサーバで可能
13年8月5日月曜日
Playサーバについて
•高速なので、本番運用もビルトインサーバで可能
•設定は全てconfファイルに書く
13年8月5日月曜日
Playサーバについて
•高速なので、本番運用もビルトインサーバで可能
•設定は全てconfファイルに書く
•開発・本番用と分けてconfファイルを用意しておけば、切り替えも簡単
13年8月5日月曜日
DBアクセスライブラリ
13年8月5日月曜日
DBアクセスライブラリ
13年8月5日月曜日
DBアクセスライブラリ
•標準はAnorm
13年8月5日月曜日
DBアクセスライブラリ
•標準はAnorm
•ちょっと使い辛い・・・
13年8月5日月曜日
DBアクセスライブラリ
•標準はAnorm
•ちょっと使い辛い・・・
•好きなライブラリを使用できる
(ScalikeJDBC,Slick,ScalaActiveRecord,Squerylなど)
13年8月5日月曜日
Salat
13年8月5日月曜日
Salat
• MongoDB用アクセスライブラリ
13年8月5日月曜日
Salat
• MongoDB用アクセスライブラリ
•今回はPlay-Salatを使用
(https://github.com/leon/play-salat)
13年8月5日月曜日
Scalaの文法
13年8月5日月曜日
Option型
13年8月5日月曜日
Option型
•値があるかどうか分からない型
13年8月5日月曜日
Option型
•値があるかどうか分からない型
•値がある場合・・・Some
値がない場合・・・None
13年8月5日月曜日
Option型
•値があるかどうか分からない型
•値がある場合・・・Some
値がない場合・・・None
• getメソッドで値を取得できる
13年8月5日月曜日
使用例 opt match { case Some(x) => println(x) case None => println(“値なし”) }
NullPointerExceptionを回避できる
(余談)良く似たものに例外処理用のEitherがある
13年8月5日月曜日
cass class
13年8月5日月曜日
cass class
•色んな便利メソッドを自動生成
13年8月5日月曜日
cass class
•色んな便利メソッドを自動生成
• apply・・・インスタンス生成
unapply・・・情報を抽出
13年8月5日月曜日
Form
13年8月5日月曜日
Form val entryForm = Form( mapping ( "name" -> nonEmptyText ) ((name: String) => Entrant(name = name)) ((entrant: Entrant) => Some(entrant.name)) )
フォームフィールド
構築関数
分解関数
13年8月5日月曜日
Form val entryForm = Form( mapping ( "name" -> nonEmptyText ) (Entrant.apply)(Entrant.unapply) )
13年8月5日月曜日
おすすめの本Scala逆引きレシピ(翔泳社)
13年8月5日月曜日
おすすめの本
• Play2の情報も載っています
Scala逆引きレシピ(翔泳社)
13年8月5日月曜日