71
SkinnyFramework やろうぜ! (+ScalaMatsuriレポート) Abe Asami 14920日土曜日

SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFrameworkやろうぜ!

(+ScalaMatsuriレポート)

Abe Asami

14年9月20日土曜日

Page 2: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

自己紹介

Abe Asami “きの子”(フリーランスエンジニア)

http://nocono.net/

Twitter: @aa7th

主な仕事:Java(Androidアプリ開発,Play1)PHP(Yii2 Framework)

14年9月20日土曜日

Page 3: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

ScalaMatsuriに行ってきました!

14年9月20日土曜日

Page 4: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

ScalaMatsuri

14年9月20日土曜日

Page 5: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

ScalaMatsuri

• 9/6 本カンファレンス9/7 アンカンファレンス

14年9月20日土曜日

Page 6: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

ScalaMatsuri

• 9/6 本カンファレンス9/7 アンカンファレンス

•言語設計者オダスキー(小田好)先生の基調講演をはじめとして、いろいろなセッションがありました。

14年9月20日土曜日

Page 7: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

ScalaMatsuri

• 9/6 本カンファレンス9/7 アンカンファレンス

•言語設計者オダスキー(小田好)先生の基調講演をはじめとして、いろいろなセッションがありました。

• 1日目はニコ生で全セッション公開中!http://www.nicovideo.jp/tag/

14年9月20日土曜日

Page 8: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

1日目懇親会

14年9月20日土曜日

Page 9: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

1日目懇親会

• LTをやらせていただきました。

14年9月20日土曜日

Page 10: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

1日目懇親会

• LTをやらせていただきました。

•時間オーバーで最後まで話せず・・・

14年9月20日土曜日

Page 11: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

1日目懇親会

• LTをやらせていただきました。

•時間オーバーで最後まで話せず・・・

•小田好先生にサインをもらって写真を一緒に撮ってもらいました。

14年9月20日土曜日

Page 12: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

感想

14年9月20日土曜日

Page 13: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

感想

•熱気がすごかった

14年9月20日土曜日

Page 14: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

感想

•熱気がすごかった

•「学習曲線が急」という話が結構出たのが個人的には印象的だった

14年9月20日土曜日

Page 15: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

感想

•熱気がすごかった

•「学習曲線が急」という話が結構出たのが個人的には印象的だった

•言語設計者の方の思想を聞けたことがとてもよかった。コップ本を読み始めて「Scalaいいなぁ」と感じたときの気持ちを思い出した。(まだ読破できてないけどね!)

14年9月20日土曜日

Page 16: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

関西盛り上げて行こう

14年9月20日土曜日

Page 17: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

関西盛り上げて行こう

•なんか東京の人は「もうそこそこ普及したよねー」って感じらしい

14年9月20日土曜日

Page 18: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

関西盛り上げて行こう

•なんか東京の人は「もうそこそこ普及したよねー」って感じらしい

•関西、待ってるだけじゃヤバい

14年9月20日土曜日

Page 19: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

関西盛り上げて行こう

•なんか東京の人は「もうそこそこ普及したよねー」って感じらしい

•関西、待ってるだけじゃヤバい

•声だして、盛り上がってる感を出して行こうぜ!

14年9月20日土曜日

Page 20: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Matsuriの話は一旦ここまで

14年9月20日土曜日

Page 21: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

今日の本題はSkinnyFramework

のご紹介です

14年9月20日土曜日

Page 22: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFramework

14年9月20日土曜日

Page 23: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFramework

• Scala製フルスタックWebフレームワーク

14年9月20日土曜日

Page 24: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFramework

• Scala製フルスタックWebフレームワーク

• Scala on Rails

14年9月20日土曜日

Page 25: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFramework

• Scala製フルスタックWebフレームワーク

• Scala on Rails

• Scalatraベース

14年9月20日土曜日

Page 26: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFramework

• Scala製フルスタックWebフレームワーク

• Scala on Rails

• Scalatraベース

• Servletコンテナ上で動く

14年9月20日土曜日

Page 27: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SkinnyFramework

• Scala製フルスタックWebフレームワーク

• Scala on Rails

• Scalatraベース

• Servletコンテナ上で動く

•国産(開発者は @seratch さん)

14年9月20日土曜日

Page 28: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

インストール

空プロジェクト(依存性解決済み)zipをダウンロードするのが一番手軽

(Homebrew、YEOMANでも導入可能)

http://skinny-framework.org/

14年9月20日土曜日

Page 29: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

とりあえず動かすzipを展開。展開したディレクトリへ移動

以下のコマンドを叩く。

./skinny run

14年9月20日土曜日

Page 30: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

localhost:8080

14年9月20日土曜日

Page 31: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Scaffolding

g = generate

14年9月20日土曜日

Page 32: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

生成実行結果

14年9月20日土曜日

Page 33: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Migration

./skinny db:migrate

開発はデフォルトでh2データベース使用設定はapplication.conf

14年9月20日土曜日

Page 34: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

localhost:8080/members

14年9月20日土曜日

Page 35: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

members/new

14年9月20日土曜日

Page 36: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

14年9月20日土曜日

Page 37: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

14年9月20日土曜日

Page 38: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

14年9月20日土曜日

Page 39: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Controller

14年9月20日土曜日

Page 40: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Routes

14年9月20日土曜日

Page 41: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SinnyResource

14年9月20日土曜日

Page 42: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SinnyResource

• SkinnyResource・・・RESTfulなwebサービストレイト

14年9月20日土曜日

Page 43: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SinnyResource

• SkinnyResource・・・RESTfulなwebサービストレイト

•変更したい箇所はoverrideして書き換えればOK

14年9月20日土曜日

Page 44: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

SinnyResource

• SkinnyResource・・・RESTfulなwebサービストレイト

•変更したい箇所はoverrideして書き換えればOK

•使わなくてもOK参考:SkinnyResource を使わない CRUD サンプル #skinnyjp - Qiita http://qiita.com/seratch@github/items/9a009622a966c3cff29d

14年9月20日土曜日

Page 45: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

View

14年9月20日土曜日

Page 46: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

実行結果

14年9月20日土曜日

Page 47: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

View template

14年9月20日土曜日

Page 48: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

View template

• Scalateというテンプレートエンジンを利用している

14年9月20日土曜日

Page 49: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

View template

• Scalateというテンプレートエンジンを利用している

•形式はMustache、Scaml、Jade、SSPに対応(デフォルトはSSP)

14年9月20日土曜日

Page 50: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Skinny-ORM

14年9月20日土曜日

Page 51: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Skinny-ORM

• ScalikeJDBCベースのOR Mapper

14年9月20日土曜日

Page 52: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Skinny-ORM

• ScalikeJDBCベースのOR Mapper

• SkinnyCRUDMapperトレイトを継承すると基本的なCRUDは扱える

14年9月20日土曜日

Page 53: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

Skinny-ORM

• ScalikeJDBCベースのOR Mapper

• SkinnyCRUDMapperトレイトを継承すると基本的なCRUDは扱える

• Play2などの他フレームワークでも使える参考:3 分でできる Play2 で Skinny ORM を使う手順 #play_ja - seratch's weblog in Japanese http://seratch.hatenablog.jp/entry/2013/12/08/203032

14年9月20日土曜日

Page 54: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

その他

14年9月20日土曜日

Page 55: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

その他

• Validatorも提供。独自ルールを作りたいときはValidationRuleトレイトを継承して新しく作ればOK

14年9月20日土曜日

Page 56: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

その他

• Validatorも提供。独自ルールを作りたいときはValidationRuleトレイトを継承して新しく作ればOK

• ReverseScaffoldが可能

14年9月20日土曜日

Page 57: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

その他

• Validatorも提供。独自ルールを作りたいときはValidationRuleトレイトを継承して新しく作ればOK

• ReverseScaffoldが可能

• Assets(Less,Sass,Scala.js...)、Mail、FactoryGirl、etc....

14年9月20日土曜日

Page 58: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

デプロイ

14年9月20日土曜日

Page 59: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

デプロイ

• warファイルにして、TomcatやJettyに配置するのが一番簡単

14年9月20日土曜日

Page 60: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

デプロイ

• warファイルにして、TomcatやJettyに配置するのが一番簡単

• Herokuもサポートしているが、Scala自体とHerokuの相性が現時点でイマイチなので難あり(本当は超何とかしたいらしい)

14年9月20日土曜日

Page 61: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

実際触った感想

14年9月20日土曜日

Page 62: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

実際触った感想

•直感的で使いやすいと感じた

14年9月20日土曜日

Page 63: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

実際触った感想

•直感的で使いやすいと感じた

• Scalaの難しい文法がわからなくてもとりあえず大丈夫

14年9月20日土曜日

Page 64: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

実際触った感想

•直感的で使いやすいと感じた

• Scalaの難しい文法がわからなくてもとりあえず大丈夫

•マニュアルや、せらさんのブログ記事、Scalatraの情報などを元に、割と詰まることなく、簡単なものは作れた

14年9月20日土曜日

Page 65: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

実際触った感想

•直感的で使いやすいと感じた

• Scalaの難しい文法がわからなくてもとりあえず大丈夫

•マニュアルや、せらさんのブログ記事、Scalatraの情報などを元に、割と詰まることなく、簡単なものは作れた

• Scaffold超便利

14年9月20日土曜日

Page 66: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

とにかく、気軽に簡単に試せるのが魅力的!みなさんもぜひ1度チャレンジして

みてください

14年9月20日土曜日

Page 67: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

参考URL

14年9月20日土曜日

Page 68: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

参考URL

• Skinny Frameworkhttp://skinny-framework.org/

14年9月20日土曜日

Page 69: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

参考URL

• Skinny Frameworkhttp://skinny-framework.org/

• Skinny Framework 1.0 Introduction in Japanesehttps://gist.github.com/seratch/7382298

14年9月20日土曜日

Page 70: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

参考URL

• Skinny Frameworkhttp://skinny-framework.org/

• Skinny Framework 1.0 Introduction in Japanesehttps://gist.github.com/seratch/7382298

• @seratchさんのブログhttp://seratch.hatenablog.jp/

14年9月20日土曜日

Page 71: SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb

ご清聴ありがとうございました

14年9月20日土曜日