Submit Search
Upload
Skinny Framework で始めた Scala
•
8 likes
•
12,054 views
Ryuji Yamashita
Follow
Skinny Framework Meetup Tokyo 2 https://skinnyjp.doorkeeper.jp/events/35750
Read less
Read more
Software
Report
Share
Report
Share
1 of 42
Download now
Download to read offline
Recommended
Skinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライド
Kazuhiro Sera
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
実戦Scala
実戦Scala
Yuto Suzuki
進撃のSbt
進撃のSbt
Yuto Suzuki
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Recommended
Skinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライド
Kazuhiro Sera
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
実戦Scala
実戦Scala
Yuto Suzuki
進撃のSbt
進撃のSbt
Yuto Suzuki
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
プロダクトにおけるScala
プロダクトにおけるScala
Yuto Suzuki
Do you like scala
Do you like scala
Yuto Suzuki
ネタじゃないScala.js
ネタじゃないScala.js
takezoe
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
Atami
Atami
Souichiro Ito
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
chibochibo
RxSwiftを“チーム開発に”導入する話
RxSwiftを“チーム開発に”導入する話
LINE Corporation
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料
tantack
CTOが語るUI/UX
CTOが語るUI/UX
Satoshi Yokoi
Good-Bye Swagger
Good-Bye Swagger
katada-yuki
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
Satoshi Yokoi
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
Skinny framework勉強会
Skinny framework勉強会
Yusuke Arakaki
DWANGO by ドワンゴ
DWANGO by ドワンゴ
scalaconfjp
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
Mogi Isamu
Laravel Livewire の紹介
Laravel Livewire の紹介
t Dash
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
Kanako Kobayashi
Developing an Akka Edge1-3
Developing an Akka Edge1-3
saaaaaaki
Serverless apps on aws using scala
Serverless apps on aws using scala
Yoshitaka Fujii
とりあえず使えるSBT
とりあえず使えるSBT
Kiyotaka Kunihira
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
Katsunori Kanda
More Related Content
What's hot
プロダクトにおけるScala
プロダクトにおけるScala
Yuto Suzuki
Do you like scala
Do you like scala
Yuto Suzuki
ネタじゃないScala.js
ネタじゃないScala.js
takezoe
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
Atami
Atami
Souichiro Ito
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
chibochibo
RxSwiftを“チーム開発に”導入する話
RxSwiftを“チーム開発に”導入する話
LINE Corporation
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料
tantack
CTOが語るUI/UX
CTOが語るUI/UX
Satoshi Yokoi
Good-Bye Swagger
Good-Bye Swagger
katada-yuki
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
Satoshi Yokoi
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
Skinny framework勉強会
Skinny framework勉強会
Yusuke Arakaki
DWANGO by ドワンゴ
DWANGO by ドワンゴ
scalaconfjp
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
Mogi Isamu
Laravel Livewire の紹介
Laravel Livewire の紹介
t Dash
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
Kanako Kobayashi
Developing an Akka Edge1-3
Developing an Akka Edge1-3
saaaaaaki
Serverless apps on aws using scala
Serverless apps on aws using scala
Yoshitaka Fujii
What's hot
(20)
プロダクトにおけるScala
プロダクトにおけるScala
Do you like scala
Do you like scala
ネタじゃないScala.js
ネタじゃないScala.js
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Atami
Atami
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
RxSwiftを“チーム開発に”導入する話
RxSwiftを“チーム開発に”導入する話
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料
CTOが語るUI/UX
CTOが語るUI/UX
Good-Bye Swagger
Good-Bye Swagger
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
新事業がどんどん出来て組織が拡大中のフェーズのランサーズがどんな感じでプロジェクトを回しているのかまとめてみました
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Skinny framework勉強会
Skinny framework勉強会
DWANGO by ドワンゴ
DWANGO by ドワンゴ
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
Laravel Livewire の紹介
Laravel Livewire の紹介
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
Developing an Akka Edge1-3
Developing an Akka Edge1-3
Serverless apps on aws using scala
Serverless apps on aws using scala
Similar to Skinny Framework で始めた Scala
とりあえず使えるSBT
とりあえず使えるSBT
Kiyotaka Kunihira
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
Katsunori Kanda
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
fd0
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Kei Nakazawa
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Junichi Noda
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Junichi Noda
Databricks の始め方
Databricks の始め方
Ryoma Nagata
DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道
Arata Fujimura
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
Daisuke Kasuya
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
Kazumi IWANAGA
2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk
Junichi Noda
Hatena blogdevelopmentflow
Hatena blogdevelopmentflow
Yasuhiro Onishi
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネット株式会社
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Kazuhiro Sera
Spray intro
Spray intro
Suguru Hamazaki
20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた
Shugo Numano
Java in the World of Container by David Buck
Java in the World of Container by David Buck
オラクルエンジニア通信
Similar to Skinny Framework で始めた Scala
(20)
とりあえず使えるSBT
とりあえず使えるSBT
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Spark Streamingで作る、つぶやきビッグデータのクローン (2015-11.10版)
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Apache Sparkを利用した「つぶやきビッグデータ」クローンとリコメンドシステムの構築
Databricks の始め方
Databricks の始め方
DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Scalaの現状と課題
Scalaの現状と課題
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
2015 10 24_spark_osc15tk
2015 10 24_spark_osc15tk
Hatena blogdevelopmentflow
Hatena blogdevelopmentflow
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Spray intro
Spray intro
20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた
Java in the World of Container by David Buck
Java in the World of Container by David Buck
Skinny Framework で始めた Scala
1.
Skinny Framework で始めた
Scala Skinny Framework Meetup Tokyo 2 2015/12/22 @roundrop
2.
自己紹介 • 山下 竜司 •
(株) アットウェア • @roundrop • Facebook4J • 普段は主に Java で Web アプリ開発 • Scala は全然やっていない
3.
アジェンダ • 事例紹介 • なぜ
Skinny を選んだか • 実際 Skinny を使ってみてどうだったか
4.
Scala先駆者インタビュー http://www.atware.co.jp/blog/2015/11/1/scala-vol2-sera
5.
にちょっと出てくる
6.
社内ナレッジ共有ツール •某人気サービスと同じよ うなインターフェイス •社内事情とScalaの練習 も兼ねて自作 (2014年8月∼約2週間) •採用したフレームワーク Skinny Framework •1.2 ->
1.3 -> 2.0
7.
主な機能 • Google アカウントでのログイン •
skinny-oauth2-controller を使用 • 記事の表示・投稿・編集・プレビュー • 複数のタグ付け • 新規投稿時は Typetalk に通知 • 画像ファイルアップロード • コメントの投稿 • 記事のストック • 検索 • ストックやコメントされたりのイベントで通知 • Contribution の計算・ランキング • i18n 対応
8.
demo
9.
はじめての実装のおすすめ • scaffold または • DB
を固めてから reverse-scaffold • 生成されたソースを弄る • すると、そのうち慣れてくる
10.
はじめての実装のおすすめ • ビューテンプレートは ssp
で • 最初はまず ssp 使っとけばハマらない • Controller は SkinnyResource を継承し ない方式で • のほうが最初はわかりやすい(と思う) • example の CompaniesController • https://github.com/skinny-framework/skinny-framework-example/ blob/master/src/main/scala/controller/CompaniesController.scala
11.
はじめての実装のおすすめ • 最初から Skinny
ORM で狙ったとおりの SQL を発行するのは難しい • トライ&エラーを繰り返すよりも Model の テストを書いての試行錯誤が効率的 • 複雑なクエリは無理をせず生SQLで • ScalikeJDBC のドキュメントを読もう
12.
社内ナレッジ共有ツール •某人気サービスと同じよ うなインターフェイス •社内事情とScalaの練習 も兼ねて自作 (2014年8月∼約2週間) •採用したフレームワーク Skinny Framework •1.2 ->
1.3 -> 2.0 今では社内の情報共有インフラに定着
13.
なぜ Skinny を選んだか
14.
Scala • Scala、はじめてみたいけど • 環境構築めんどくさそう •
Scala のバージョンや sbt • activator って何者・・・ • FW/ライブラリ事情がわからない • FW いっぱいある・・・ • Play framework が無難? • DB アクセスライブラリいっぱいある・・・
15.
Scala • とりあえず普通の Web
アプリがつくりた いだけなんだけど・・・ • アクターモデルとか • 非同期前提とか • Reactive とか そういうのはあとでいいので・・・
16.
Scala • とりあえず普通の Web
アプリがつくりた いだけなんだけど・・・ • アクターモデルとか • 非同期前提とか • Reactive とか そういうのはあとでいいので・・・ Rails みたいなフルスタックでわかりやすいのがほしい
17.
Skinny Framework で始める
Scala http://www.java-users.jp/?page_id=1048#R2-4
18.
Skinny Framework で始める
Scala ( ゚д゚) ガタッ / ヾ __L¦ / ̄ ̄ ̄/_ \/ / http://www.java-users.jp/?page_id=1048#R2-4
19.
実際 Skinny を使ってみて どうだったか
20.
Skinny で始めた Scala •
はじめやすさ • わかりやすさ • 生産性
21.
Skinny で始めた Scala •
はじめやすさ • わかりやすさ • 生産性
22.
環境構築 •Java プログラマなら お馴染みのSAStruts よろしく解凍すれば すぐに使えるブラン クプロジェクト •依存ライブラリ込み 版もあり http://skinny-framework.org
23.
環境構築 • 解凍して IntelliJ
IDEA に放り込めば OK
24.
環境構築 • sbt 、Scala
のバージョン等もろもろ設定完了
25.
• めんどくさくなかった! • Skinny
が始めやすいのは本当
26.
Skinny で始めた Scala •
○ はじめやすさ • わかりやすさ • 生産性
27.
Skinny で始めた Scala •
○ はじめやすさ • わかりやすさ • 生産性
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.
Skinny のドキュメント • Play
framework のドキュメントよりも直 感的だし読みやすい構成・内容 • サイトトップに Overview -> 詳細へリンク • 局所的でなく一定の流れのあるサンプルコー ド + コメント • 適切な順序・粒度で書かれている
30.
Scala on Rails •
Play と違って仕組みやメソッド等の命名が Rails ライクなので独自の世界観が少なく スッと入ってくる感じ • params とか render とか strong parameter とか • それ故、他のメンバーもすんなり開発に入っ て来れています
31.
Servlet ベース • Servlet
コンテナ上で動く • Filter とか HttpServletRequest とかあると 妙に安心する • 困ってもなんとかできそう感 • コンフィギュレーションやデプロイも想像が つく
32.
Skinny で始めた Scala •
○ はじめやすさ • ○ わかりやすさ • 生産性
33.
Skinny で始めた Scala •
○ はじめやすさ • ○ わかりやすさ • 生産性
34.
コンパイル時間問題への対策 • 開発時は最小限のコンパイルのみ行うよう になっている • 基本、変更したものだけ差分コンパイル •
ビューの変更であればアプリサーバーの再起 動不要 • 今回程度のアプリでは特に大きなストレスは 感じなかった
35.
近道 - scaffolding •
Rails と同じく scaffold がある • 最初は、とりあえず scaffold でソース生成 して、それを弄るスタイルが捗る • 既存 DB スキーマから CRUD 生成する reverse-scaffold もある
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.
よくやるアレコレ入ってる • Web アプリでよくやるあれやこれやが予め 用意されてる •
i18n 対応 • CSRF プロテクション • 監査カラム自動更新、楽観的排他制御 • OAuth モジュール :
38.
• 何より、何も知らない Scala
素人が仕事し ながらの2週間程度でそこそこ使えるアプ リができたので、生産性はよいほうだと思 います
39.
Skinny で始めた Scala •
○ はじめやすさ • ○ わかりやすさ • ○ 生産性
40.
Skinny で始めた Scala •
○ はじめやすさ • ○ わかりやすさ • ○ 生産性 今回のケースでは Skinny を選んで正解だった
41.
まとめ • Scala 未経験者が
Skinny を使って社内ナ レッジ共有ツールをつくりました • Skinny の始めやすさのおかげで Scala を はじめるキッカケになった • フツーの Web アプリであれば Skinny は わかりやすいし生産性もよいのでオススメ
42.
まとめ • Scala 未経験者が
Skinny を使って社内ナ レッジ共有ツールをつくりました • Skinny の始めやすさのおかげで Scala を はじめるキッカケになった • フツーの Web アプリであれば Skinny は わかりやすいし生産性もよいのでオススメ Skinny Framework 使いましょう!
Download now