SlideShare a Scribd company logo
Submit Search
Upload
Scala@SmartNews AdFrontend を Scala で書いた話
Report
Share
Keiji Muraishi
SmartNews, Inc. - Software Engineer at SmartNews, Inc.
Follow
•
4 likes
•
12,058 views
1
of
19
Scala@SmartNews AdFrontend を Scala で書いた話
•
4 likes
•
12,058 views
Report
Share
Download Now
Download to read offline
Technology
Scala@SmartNews AdFrontend を Scala で書いた話
Read more
Keiji Muraishi
SmartNews, Inc. - Software Engineer at SmartNews, Inc.
Follow
Recommended
Scala@SmartNews_20150221 by
Scala@SmartNews_20150221
Shigekazu Takei
14.9K views
•
29 slides
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala by
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
26.6K views
•
39 slides
Api gatewayの話 by
Api gatewayの話
Hiroshi Hayakawa
7.1K views
•
22 slides
JAWS-UG CLI #37 AWS CodeCommit入門 by
JAWS-UG CLI #37 AWS CodeCommit入門
Nobuhiro Nakayama
825 views
•
13 slides
20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録 by
20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録
Naomi Yamasaki
1.9K views
•
67 slides
サーバーレスで ガチ本番運用までやってるお話し by
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
5.1K views
•
31 slides
More Related Content
What's hot
20170210 jawsug横浜(AWSタグ) by
20170210 jawsug横浜(AWSタグ)
Toshihiro Setojima
22.7K views
•
21 slides
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話 by
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話
Ryuta Otaki
9.6K views
•
25 slides
JAWS DAYS 2017 LT 古きを捨て新しきに近づける by
JAWS DAYS 2017 LT 古きを捨て新しきに近づける
Tetsuya Mase
1.4K views
•
15 slides
20181108 kashiwa chamberofcommerce by
20181108 kashiwa chamberofcommerce
桂一 中山
253 views
•
44 slides
JavaからScalaへ by
JavaからScalaへ
takezoe
8.7K views
•
23 slides
jawsdays 2017 新訳-とある設計士の雲設計定石目録_3 by
jawsdays 2017 新訳-とある設計士の雲設計定石目録_3
a kyane
2.4K views
•
23 slides
What's hot
(19)
20170210 jawsug横浜(AWSタグ) by Toshihiro Setojima
20170210 jawsug横浜(AWSタグ)
Toshihiro Setojima
•
22.7K views
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話 by Ryuta Otaki
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話
Ryuta Otaki
•
9.6K views
JAWS DAYS 2017 LT 古きを捨て新しきに近づける by Tetsuya Mase
JAWS DAYS 2017 LT 古きを捨て新しきに近づける
Tetsuya Mase
•
1.4K views
20181108 kashiwa chamberofcommerce by 桂一 中山
20181108 kashiwa chamberofcommerce
桂一 中山
•
253 views
JavaからScalaへ by takezoe
JavaからScalaへ
takezoe
•
8.7K views
jawsdays 2017 新訳-とある設計士の雲設計定石目録_3 by a kyane
jawsdays 2017 新訳-とある設計士の雲設計定石目録_3
a kyane
•
2.4K views
クラウドネイティブ化する未来 by Keisuke Nishitani
クラウドネイティブ化する未来
Keisuke Nishitani
•
14.8K views
JAWS-UG アーキテクチャ専門支部(ハイブリッド分科会) #9 EC2 Run Commnadのいいところ by Nobuhiro Nakayama
JAWS-UG アーキテクチャ専門支部(ハイブリッド分科会) #9 EC2 Run Commnadのいいところ
Nobuhiro Nakayama
•
654 views
はじめてのBluemixでシングルサインオン ~ 希望編! by Kazumi IWANAGA
はじめてのBluemixでシングルサインオン ~ 希望編!
Kazumi IWANAGA
•
2.1K views
IaC事始め by 大智 森田
IaC事始め
大智 森田
•
44 views
Jaws days2017-ops jaws-2 by Serverworks Co.,Ltd.
Jaws days2017-ops jaws-2
Serverworks Co.,Ltd.
•
3.8K views
Azure Functionsでサーバーレスアプリケーション構築 by ryosuke matsumura
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
•
632 views
Serverless Architecture Overview #cdevc by Masahiro NAKAYAMA
Serverless Architecture Overview #cdevc
Masahiro NAKAYAMA
•
9.1K views
Swaggerで始めるモデルファーストなAPI開発 by Takuro Sasaki
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
•
100.9K views
20170111above the cloud_vol2 by Naomi Yamasaki
20170111above the cloud_vol2
Naomi Yamasaki
•
237 views
IoT(Bluetooth mesh) × サーバーレス by Masahiro NAKAYAMA
IoT(Bluetooth mesh) × サーバーレス
Masahiro NAKAYAMA
•
1.4K views
マイクロサービス運用の所感 #m3dev by Kazuhiro Sera
マイクロサービス運用の所感 #m3dev
Kazuhiro Sera
•
33.3K views
AWSで始めるサーバレスな RESTful API システム by Masayuki Kato
AWSで始めるサーバレスな RESTful API システム
Masayuki Kato
•
16.1K views
Single Command Deployのための gradle-aws-plugin講座 by 都元ダイスケ Miyamoto
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
•
5.6K views
Similar to Scala@SmartNews AdFrontend を Scala で書いた話
実践!AWSクラウドデザインパターン by
実践!AWSクラウドデザインパターン
Hiroyasu Suzuki
15.8K views
•
115 slides
Movable typeseminar 20120925 by
Movable typeseminar 20120925
Six Apart
1.4K views
•
52 slides
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート by
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
真吾 吉田
3.4K views
•
42 slides
May the FaaS be with us!! by
May the FaaS be with us!!
真吾 吉田
2K views
•
29 slides
Service Cloud Trailblazers #5 by
Service Cloud Trailblazers #5
sfdc_sctb
625 views
•
59 slides
[VMware Partner Exchange Tokyo 14Apr2014] ネットアップセッション資料 by
[VMware Partner Exchange Tokyo 14Apr2014] ネットアップセッション資料
NetApp Japan
2.2K views
•
33 slides
Similar to Scala@SmartNews AdFrontend を Scala で書いた話
(20)
実践!AWSクラウドデザインパターン by Hiroyasu Suzuki
実践!AWSクラウドデザインパターン
Hiroyasu Suzuki
•
15.8K views
Movable typeseminar 20120925 by Six Apart
Movable typeseminar 20120925
Six Apart
•
1.4K views
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート by 真吾 吉田
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
真吾 吉田
•
3.4K views
May the FaaS be with us!! by 真吾 吉田
May the FaaS be with us!!
真吾 吉田
•
2K views
Service Cloud Trailblazers #5 by sfdc_sctb
Service Cloud Trailblazers #5
sfdc_sctb
•
625 views
[VMware Partner Exchange Tokyo 14Apr2014] ネットアップセッション資料 by NetApp Japan
[VMware Partner Exchange Tokyo 14Apr2014] ネットアップセッション資料
NetApp Japan
•
2.2K views
Infrastructure as Code (IaC) 談義 2022 by Amazon Web Services Japan
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
•
3.3K views
サーバーレスの今とこれから by 真吾 吉田
サーバーレスの今とこれから
真吾 吉田
•
35.2K views
サーバーレスの話 by 真吾 吉田
サーバーレスの話
真吾 吉田
•
3.5K views
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める by Daiyu Hatakeyama
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
Daiyu Hatakeyama
•
565 views
【日本語版】Styler: Our Journey to GCP by MichaelFindlater
【日本語版】Styler: Our Journey to GCP
MichaelFindlater
•
77 views
Azure Antenna AI 概要 by Miho Yamamoto
Azure Antenna AI 概要
Miho Yamamoto
•
1.1K views
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」 by アトラシアン株式会社
2019年9月18日開催AWS Japan × Atlassianセミナー_セッション2「AmazonカルチャーとDevOps」
アトラシアン株式会社
•
299 views
20130226 Amazon Web Services 勉強会(新宿) by 真吾 吉田
20130226 Amazon Web Services 勉強会(新宿)
真吾 吉田
•
1.1K views
Realm platform2019 by 昌桓 李
Realm platform2019
昌桓 李
•
1.2K views
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio by fd0
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
fd0
•
4.2K views
Scala: Mobile Backend on AWS by cmaraiyusuke
Scala: Mobile Backend on AWS
cmaraiyusuke
•
273 views
パララックスでレスポンシブでJ query mobileなサイトのつくりかた by Shumpei Shiraishi
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
•
20K views
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】 by DeNA
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
•
30.3K views
今なぜサーバーレスなのか by 真吾 吉田
今なぜサーバーレスなのか
真吾 吉田
•
4.1K views
Recently uploaded
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
8 views
•
34 slides
概念モデリングワークショップ 設計編 by
概念モデリングワークショップ 設計編
Knowledge & Experience
10 views
•
37 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料
ssusere7a2172
220 views
•
19 slides
JJUG CCC.pptx by
JJUG CCC.pptx
Kanta Sasaki
6 views
•
14 slides
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
185 views
•
63 slides
概念モデリングワークショップ 基礎編 by
概念モデリングワークショップ 基礎編
Knowledge & Experience
19 views
•
71 slides
Recently uploaded
(8)
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
8 views
概念モデリングワークショップ 設計編 by Knowledge & Experience
概念モデリングワークショップ 設計編
Knowledge & Experience
•
10 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料
ssusere7a2172
•
220 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
185 views
概念モデリングワークショップ 基礎編 by Knowledge & Experience
概念モデリングワークショップ 基礎編
Knowledge & Experience
•
19 views
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
217 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023
法林浩之
•
83 views
Scala@SmartNews AdFrontend を Scala で書いた話
1.
Scala@SmartNews Ad Frontend を
Scala で書いた話 @kjim
2.
自己紹介 • 村石恵示 • スマートニュース
(2014/09入社) • SmartNews Ads Engineer • 基本は Java な人
3.
アドチームのミッション…
4.
12月に最高の広告 プロダクトをリリースする
5.
Ads as Content
6.
Web Framework ? •
クラスのオートリロード(ホットリローディング)は必須。 • 静的型付けによるサポート欲しい。 動かす前にある程度動く担保を作りたい。DB拡張に追随する時にコンパイラにエラーでナビゲートして欲しい。 • 宣言的ルーティング定義。 • 宣言的フォームバリデーション定義。 • DBスキーマからDataAccess層を生成したい。 • パフォーマンスはそんなに追求しない。 • Scala アリでは…
7.
Scala + Play2
+ Slick
9.
Play2 宣言的なルーティング設定
10.
Play2 宣言的なフォームバリデーション定義
12.
Slick DataAccess層を自動生成 • スキーマのバージョン管理は flyway Evolution
は使ってない • flyway で管理しているスキーマから Slick のテーブルクラスをリバースで 自動生成。生成するクラスはSourceCodeGeneratorをカスタマイズして 複数の .scala ファイルを生成するようにしている。 • ただし、自動生成したクラスは直接サービス層から使わずRepository層の 内側で利用 • 更新系は普通にSlickのメソッドを利用するが、参照系は普通にSQL書い てる。
14.
Scala On the fly
なコードを瞬時に書ける • Option Some(true), Some(false), Some(null), None メソッドの仕様を明示できる NullPointerException回避 • case class パターンマッチ 便利メソッド、永続化など • Collection, Future, … • 業務系アプリを作るのにも最適な言語
15.
ただし、 Scala最大のツラミは コンパイル速度
16.
まとめ
17.
まとめ • Scala +
Play2 + Slick は開発のリズムを作りやすい • 型の安心感 • 宣言的プログラミング • 言語標準の豊かなAPI • Scala業務系アプリを作るのにも最適な言語 • Scalaはマジでコンパイルが遅い
18.
SmartNews 世界中の良質な情報を必要な人に送り届ける • 一緒にスマートニュースを作ってくれる仲間を 募集しています。 http://about.smartnews.com/ja/careers/ • オフィススペースを提供していますのでお声掛 けください。
19.
ありがとうございました