Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Skinny Framework で始めた Scala
Skinny Framework Meetup Tokyo 2
2015/12/22
@roundrop
自己紹介
• 山下 竜司
• (株) アットウェア
• @roundrop
• Facebook4J
• 普段は主に Java で Web アプリ開発
• Scala は全然やっていない
アジェンダ
• 事例紹介
• なぜ Skinny を選んだか
• 実際 Skinny を使ってみてどうだったか
Scala先駆者インタビュー
http://www.atware.co.jp/blog/2015/11/1/scala-vol2-sera
にちょっと出てくる
社内ナレッジ共有ツール
•某人気サービスと同じよ
うなインターフェイス
•社内事情とScalaの練習
も兼ねて自作
(2014年8月∼約2週間)
•採用したフレームワーク
Skinny Framework
•1.2 -> 1.3 -> 2.0
主な機能
• Google アカウントでのログイン
• skinny-oauth2-controller を使用
• 記事の表示・投稿・編集・プレビュー
• 複数のタグ付け
• 新規投稿時は Typetalk に通知
• 画像ファイルアップロー...
demo
はじめての実装のおすすめ
• scaffold
または
• DB を固めてから reverse-scaffold
• 生成されたソースを弄る
• すると、そのうち慣れてくる
はじめての実装のおすすめ
• ビューテンプレートは ssp で
• 最初はまず ssp 使っとけばハマらない
• Controller は SkinnyResource を継承し
ない方式で
• のほうが最初はわかりやすい(と思う)
• exa...
はじめての実装のおすすめ
• 最初から Skinny ORM で狙ったとおりの
SQL を発行するのは難しい
• トライ&エラーを繰り返すよりも Model の
テストを書いての試行錯誤が効率的
• 複雑なクエリは無理をせず生SQLで
• Sc...
社内ナレッジ共有ツール
•某人気サービスと同じよ
うなインターフェイス
•社内事情とScalaの練習
も兼ねて自作
(2014年8月∼約2週間)
•採用したフレームワーク
Skinny Framework
•1.2 -> 1.3 -> 2.0
...
なぜ Skinny を選んだか
Scala
• Scala、はじめてみたいけど
• 環境構築めんどくさそう
• Scala のバージョンや sbt
• activator って何者・・・
• FW/ライブラリ事情がわからない
• FW いっぱいある・・・
• Play fra...
Scala
• とりあえず普通の Web アプリがつくりた
いだけなんだけど・・・
• アクターモデルとか
• 非同期前提とか
• Reactive とか
そういうのはあとでいいので・・・
Scala
• とりあえず普通の Web アプリがつくりた
いだけなんだけど・・・
• アクターモデルとか
• 非同期前提とか
• Reactive とか
そういうのはあとでいいので・・・
Rails みたいなフルスタックでわかりやすいのがほしい
Skinny Framework で始める Scala
http://www.java-users.jp/?page_id=1048#R2-4
Skinny Framework で始める Scala
  ( ゚д゚) ガタッ
  /   ヾ
__L¦ / ̄ ̄ ̄/_
  \/   /
http://www.java-users.jp/?page_id=1048#R2-4
実際 Skinny を使ってみて
どうだったか
Skinny で始めた Scala
• はじめやすさ
• わかりやすさ
• 生産性
Skinny で始めた Scala
• はじめやすさ
• わかりやすさ
• 生産性
環境構築
•Java プログラマなら
お馴染みのSAStruts
よろしく解凍すれば
すぐに使えるブラン
クプロジェクト
•依存ライブラリ込み
版もあり
http://skinny-framework.org
環境構築
• 解凍して IntelliJ IDEA に放り込めば OK
環境構築
• sbt 、Scala のバージョン等もろもろ設定完了
• めんどくさくなかった!
• Skinny が始めやすいのは本当
Skinny で始めた Scala
• ○ はじめやすさ
• わかりやすさ
• 生産性
Skinny で始めた Scala
• ○ はじめやすさ
• わかりやすさ
• 生産性
Skinny のドキュメント
• ドキュメント
• 公式 http://skinny-framework.org
• Example
• https://github.com/skinny-framework/
skinny-framework...
Skinny のドキュメント
• Play framework のドキュメントよりも直
感的だし読みやすい構成・内容
• サイトトップに Overview -> 詳細へリンク
• 局所的でなく一定の流れのあるサンプルコー
ド + コメント
• ...
Scala on Rails
• Play と違って仕組みやメソッド等の命名が
Rails ライクなので独自の世界観が少なく
スッと入ってくる感じ
• params とか render とか strong parameter とか
• それ故、...
Servlet ベース
• Servlet コンテナ上で動く
• Filter とか HttpServletRequest とかあると
妙に安心する
• 困ってもなんとかできそう感
• コンフィギュレーションやデプロイも想像が
つく
Skinny で始めた Scala
• ○ はじめやすさ
• ○ わかりやすさ
• 生産性
Skinny で始めた Scala
• ○ はじめやすさ
• ○ わかりやすさ
• 生産性
コンパイル時間問題への対策
• 開発時は最小限のコンパイルのみ行うよう
になっている
• 基本、変更したものだけ差分コンパイル
• ビューの変更であればアプリサーバーの再起
動不要
• 今回程度のアプリでは特に大きなストレスは
感じなかった
近道 - scaffolding
• Rails と同じく scaffold がある
• 最初は、とりあえず scaffold でソース生成
して、それを弄るスタイルが捗る
• 既存 DB スキーマから CRUD 生成する
reverse-scaff...
近道 - scaffolding
• 私の場合、
1. DB 設計する
2. db:migrate してスキーマつくる
$ ./skinny db:migrate
3. reverse-scaffold
$ ./skinny g reverse-...
よくやるアレコレ入ってる
• Web アプリでよくやるあれやこれやが予め
用意されてる
• i18n 対応
• CSRF プロテクション
• 監査カラム自動更新、楽観的排他制御
• OAuth モジュール
:
• 何より、何も知らない Scala 素人が仕事し
ながらの2週間程度でそこそこ使えるアプ
リができたので、生産性はよいほうだと思
います
Skinny で始めた Scala
• ○ はじめやすさ
• ○ わかりやすさ
• ○ 生産性
Skinny で始めた Scala
• ○ はじめやすさ
• ○ わかりやすさ
• ○ 生産性
今回のケースでは
Skinny を選んで正解だった
まとめ
• Scala 未経験者が Skinny を使って社内ナ
レッジ共有ツールをつくりました
• Skinny の始めやすさのおかげで Scala を
はじめるキッカケになった
• フツーの Web アプリであれば Skinny は
わかり...
まとめ
• Scala 未経験者が Skinny を使って社内ナ
レッジ共有ツールをつくりました
• Skinny の始めやすさのおかげで Scala を
はじめるキッカケになった
• フツーの Web アプリであれば Skinny は
わかり...
Próxima SlideShare
Cargando en…5
×

Skinny Framework で始めた Scala

Skinny Framework Meetup Tokyo 2
https://skinnyjp.doorkeeper.jp/events/35750

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo
  • Sé el primero en comentar

Skinny Framework で始めた Scala

  1. 1. Skinny Framework で始めた Scala Skinny Framework Meetup Tokyo 2 2015/12/22 @roundrop
  2. 2. 自己紹介 • 山下 竜司 • (株) アットウェア • @roundrop • Facebook4J • 普段は主に Java で Web アプリ開発 • Scala は全然やっていない
  3. 3. アジェンダ • 事例紹介 • なぜ Skinny を選んだか • 実際 Skinny を使ってみてどうだったか
  4. 4. Scala先駆者インタビュー http://www.atware.co.jp/blog/2015/11/1/scala-vol2-sera
  5. 5. にちょっと出てくる
  6. 6. 社内ナレッジ共有ツール •某人気サービスと同じよ うなインターフェイス •社内事情とScalaの練習 も兼ねて自作 (2014年8月∼約2週間) •採用したフレームワーク Skinny Framework •1.2 -> 1.3 -> 2.0
  7. 7. 主な機能 • Google アカウントでのログイン • skinny-oauth2-controller を使用 • 記事の表示・投稿・編集・プレビュー • 複数のタグ付け • 新規投稿時は Typetalk に通知 • 画像ファイルアップロード • コメントの投稿 • 記事のストック • 検索 • ストックやコメントされたりのイベントで通知 • Contribution の計算・ランキング • i18n 対応
  8. 8. demo
  9. 9. はじめての実装のおすすめ • scaffold または • DB を固めてから reverse-scaffold • 生成されたソースを弄る • すると、そのうち慣れてくる
  10. 10. はじめての実装のおすすめ • ビューテンプレートは ssp で • 最初はまず ssp 使っとけばハマらない • Controller は SkinnyResource を継承し ない方式で • のほうが最初はわかりやすい(と思う) • example の CompaniesController • https://github.com/skinny-framework/skinny-framework-example/ blob/master/src/main/scala/controller/CompaniesController.scala
  11. 11. はじめての実装のおすすめ • 最初から Skinny ORM で狙ったとおりの SQL を発行するのは難しい • トライ&エラーを繰り返すよりも Model の テストを書いての試行錯誤が効率的 • 複雑なクエリは無理をせず生SQLで • ScalikeJDBC のドキュメントを読もう
  12. 12. 社内ナレッジ共有ツール •某人気サービスと同じよ うなインターフェイス •社内事情とScalaの練習 も兼ねて自作 (2014年8月∼約2週間) •採用したフレームワーク Skinny Framework •1.2 -> 1.3 -> 2.0 今では社内の情報共有インフラに定着
  13. 13. なぜ Skinny を選んだか
  14. 14. Scala • Scala、はじめてみたいけど • 環境構築めんどくさそう • Scala のバージョンや sbt • activator って何者・・・ • FW/ライブラリ事情がわからない • FW いっぱいある・・・ • Play framework が無難? • DB アクセスライブラリいっぱいある・・・
  15. 15. Scala • とりあえず普通の Web アプリがつくりた いだけなんだけど・・・ • アクターモデルとか • 非同期前提とか • Reactive とか そういうのはあとでいいので・・・
  16. 16. Scala • とりあえず普通の Web アプリがつくりた いだけなんだけど・・・ • アクターモデルとか • 非同期前提とか • Reactive とか そういうのはあとでいいので・・・ Rails みたいなフルスタックでわかりやすいのがほしい
  17. 17. Skinny Framework で始める Scala http://www.java-users.jp/?page_id=1048#R2-4
  18. 18. Skinny Framework で始める Scala   ( ゚д゚) ガタッ   /   ヾ __L¦ / ̄ ̄ ̄/_   \/   / http://www.java-users.jp/?page_id=1048#R2-4
  19. 19. 実際 Skinny を使ってみて どうだったか
  20. 20. Skinny で始めた Scala • はじめやすさ • わかりやすさ • 生産性
  21. 21. Skinny で始めた Scala • はじめやすさ • わかりやすさ • 生産性
  22. 22. 環境構築 •Java プログラマなら お馴染みのSAStruts よろしく解凍すれば すぐに使えるブラン クプロジェクト •依存ライブラリ込み 版もあり http://skinny-framework.org
  23. 23. 環境構築 • 解凍して IntelliJ IDEA に放り込めば OK
  24. 24. 環境構築 • sbt 、Scala のバージョン等もろもろ設定完了
  25. 25. • めんどくさくなかった! • Skinny が始めやすいのは本当
  26. 26. Skinny で始めた Scala • ○ はじめやすさ • わかりやすさ • 生産性
  27. 27. Skinny で始めた Scala • ○ はじめやすさ • わかりやすさ • 生産性
  28. 28. Skinny のドキュメント • ドキュメント • 公式 http://skinny-framework.org • Example • https://github.com/skinny-framework/ skinny-framework-example • ScalikeJDBC 公式 • http://scalikejdbc.org • ScalikeJDBC の GitBook • https://www.gitbook.com/book/seratch/ scalikejdbc-cookbook/details
  29. 29. Skinny のドキュメント • Play framework のドキュメントよりも直 感的だし読みやすい構成・内容 • サイトトップに Overview -> 詳細へリンク • 局所的でなく一定の流れのあるサンプルコー ド + コメント • 適切な順序・粒度で書かれている
  30. 30. Scala on Rails • Play と違って仕組みやメソッド等の命名が Rails ライクなので独自の世界観が少なく スッと入ってくる感じ • params とか render とか strong parameter とか • それ故、他のメンバーもすんなり開発に入っ て来れています
  31. 31. Servlet ベース • Servlet コンテナ上で動く • Filter とか HttpServletRequest とかあると 妙に安心する • 困ってもなんとかできそう感 • コンフィギュレーションやデプロイも想像が つく
  32. 32. Skinny で始めた Scala • ○ はじめやすさ • ○ わかりやすさ • 生産性
  33. 33. Skinny で始めた Scala • ○ はじめやすさ • ○ わかりやすさ • 生産性
  34. 34. コンパイル時間問題への対策 • 開発時は最小限のコンパイルのみ行うよう になっている • 基本、変更したものだけ差分コンパイル • ビューの変更であればアプリサーバーの再起 動不要 • 今回程度のアプリでは特に大きなストレスは 感じなかった
  35. 35. 近道 - scaffolding • Rails と同じく scaffold がある • 最初は、とりあえず scaffold でソース生成 して、それを弄るスタイルが捗る • 既存 DB スキーマから CRUD 生成する reverse-scaffold もある
  36. 36. 近道 - scaffolding • 私の場合、 1. DB 設計する 2. db:migrate してスキーマつくる $ ./skinny db:migrate 3. reverse-scaffold $ ./skinny g reverse-scaffold articles articles article 4. 生成されたソースをいじる 5. 3, 4 を繰り返す
  37. 37. よくやるアレコレ入ってる • Web アプリでよくやるあれやこれやが予め 用意されてる • i18n 対応 • CSRF プロテクション • 監査カラム自動更新、楽観的排他制御 • OAuth モジュール :
  38. 38. • 何より、何も知らない Scala 素人が仕事し ながらの2週間程度でそこそこ使えるアプ リができたので、生産性はよいほうだと思 います
  39. 39. Skinny で始めた Scala • ○ はじめやすさ • ○ わかりやすさ • ○ 生産性
  40. 40. Skinny で始めた Scala • ○ はじめやすさ • ○ わかりやすさ • ○ 生産性 今回のケースでは Skinny を選んで正解だった
  41. 41. まとめ • Scala 未経験者が Skinny を使って社内ナ レッジ共有ツールをつくりました • Skinny の始めやすさのおかげで Scala を はじめるキッカケになった • フツーの Web アプリであれば Skinny は わかりやすいし生産性もよいのでオススメ
  42. 42. まとめ • Scala 未経験者が Skinny を使って社内ナ レッジ共有ツールをつくりました • Skinny の始めやすさのおかげで Scala を はじめるキッカケになった • フツーの Web アプリであれば Skinny は わかりやすいし生産性もよいのでオススメ Skinny Framework 使いましょう!

×