Diese Präsentation wurde erfolgreich gemeldet.

Skinny Framework で始めた Scala

8

Teilen

Wird geladen in …3
×
1 von 42
1 von 42

Skinny Framework で始めた Scala

8

Teilen

Herunterladen, um offline zu lesen

Beschreibung

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

Transkript

  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 使いましょう!

Beschreibung

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

Transkript

  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 使いましょう!

Weitere Verwandte Inhalte

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

×