SlideShare a Scribd company logo
何故Scalaを選んだのか?	
  
∼アドテクスタジオの場合∼
1
自己紹介
• 神田勝規(かんだかつのり)	
  
• 株式会社サイバーエージェント	
  
• アドテクスタジオ	
  AMoAd所属	
  
• potix2@twitter	
  /	
  github	
  
• 毎月LispMeetup(shibuya.lisp)を開催してます
2
アドテクスタジオ
• 2013年10月設立	
  
• 在籍しているエンジニア	
  250人くらい	
  
• 使われている言語	
  
– Java,	
  Scala,	
  PHP,	
  Ruby...	
  
• 業務でScalaを書いているエンジニア	
  
• 全体の3割くらい
3
はじめてのScala@AMoAd
• 2013年の6月頃から使いはじめた	
  
• Scalaを使った経験者がほぼいない	
  
• 既存バッチの置き換え	
  
• Scalaの開発経験を稼ぐところから
4
何故、Scalaを選んだのか?
5
エンジニアからの要望が多かった
6
コードをシンプルに書ける
7
並列・分散処理が書きやすい
8
Scalaを導入して良かった例
9
Hadoopジョブの置き換え
• Hadoopジョブのパフォーマンス改善が急遽
必要になった	
  
• Hadoopの扱いに慣れているメンバーがいな
い
10
11
Scaldingを使ってみて
• Scalaのコレクション操作のようにHadoop
ジョブを組むことができた	
  
• テストが書ける!(cf.	
  Hive)	
  
• リリース前倒し	
  
• パフォーマンスも問題ないレベル
12
Scaldingの簡単な例
13
class	
  WordCountJob(args	
  :	
  Args)	
  extends	
  Job(args)	
  {	
  
	
  	
  TypedPipe.from(TextLine(args("input")))	
  
	
  	
  	
  	
  .flatMap	
  {	
  line	
  =>	
  line.split("""s+""")	
  }	
  
	
  	
  	
  	
  .groupBy	
  {	
  word	
  =>	
  word	
  }	
  
	
  	
  	
  	
  .size	
  
	
  	
  	
  	
  .write(TypedTsv(args("output")))	
  
}
引用)	
  https://github.com/twitter/scalding
Scala導入に際してやったこと
14
社内で読書会
• Functional	
  Programming	
  in	
  Scala	
  
• 良かった点	
  
• チーム内での共通言語を増やせた	
  
• 悪かった点	
  
• 途中でジョインしたメンバーが参加しづ
らかった
15
Scalaもくもく会
• Scalaを使う業務を持ち寄って黙々と作業	
  
• 良かった点	
  
• ノウハウが共有された	
  
• 悪かった点	
  
• 自然消滅した
16
いま抱えている課題
• Scalaをどうやって学習すればいいのか?	
  
• ライブラリやフレームワークが乱立してい
て選定に困る	
  
• ベストプラクティスがわからない
17
最近のScala利用例
18
まとめ
• エンジニアのモチベーション重要	
  
• Scalaは記述力が高くてコードがシンプルに	
  
• その反面、学習コストが高くなりがち
19

More Related Content

What's hot (20)

PDF
頑張りすぎないScala
takezoe
 
PDF
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
Asami Abe
 
KEY
Scalaはじめました!
Asami Abe
 
PDF
Overview of Scala ~ Hacker Tackle
Daisuke Kasuya
 
PDF
Introduction of SQL Anti-pattern at Phpcon Hokkaido
Kenta Kawai
 
KEY
Javaから見たRubyの世界
Takafumi Yoshida
 
PDF
Scala超入門 - 2014/12/13 Scala関西勉強会
Asami Abe
 
PDF
Atami
Souichiro Ito
 
PDF
SIerでScalaを使うために私がしたこと
takezoe
 
PDF
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
 
PDF
Dark vol4 for_slideshare
ara_ta3
 
PDF
Scala Warrior and type-safe front-end development with Scala.js
takezoe
 
PDF
Play2+Scala事始め
Asami Abe
 
PDF
関西Java女子部とScala関西勉強会のご紹介
Asami Abe
 
PDF
ScalaにまつわるNewsな話
Yosuke Mizutani
 
PDF
Eightにおけるエンジニア主導の取り組み
Sansan
 
PDF
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
smokey monkey
 
PDF
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
Asami Abe
 
PPTX
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Yuta Shimizu
 
KEY
JRubyで作るapiサーバー
Yamamoto Kazuhisa
 
頑張りすぎないScala
takezoe
 
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
Asami Abe
 
Scalaはじめました!
Asami Abe
 
Overview of Scala ~ Hacker Tackle
Daisuke Kasuya
 
Introduction of SQL Anti-pattern at Phpcon Hokkaido
Kenta Kawai
 
Javaから見たRubyの世界
Takafumi Yoshida
 
Scala超入門 - 2014/12/13 Scala関西勉強会
Asami Abe
 
SIerでScalaを使うために私がしたこと
takezoe
 
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
 
Dark vol4 for_slideshare
ara_ta3
 
Scala Warrior and type-safe front-end development with Scala.js
takezoe
 
Play2+Scala事始め
Asami Abe
 
関西Java女子部とScala関西勉強会のご紹介
Asami Abe
 
ScalaにまつわるNewsな話
Yosuke Mizutani
 
Eightにおけるエンジニア主導の取り組み
Sansan
 
クラスメソッド会社説明会 in 北海道札幌 at smokeymonkey #cmdevio
smokey monkey
 
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
Asami Abe
 
Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ - 川崎Ruby会議01
Yuta Shimizu
 
JRubyで作るapiサーバー
Yamamoto Kazuhisa
 

Viewers also liked (18)

PDF
Treasure Data and OSS
N Masahiro
 
PPTX
Hadoop, SQL and NoSQL, No longer an either/or question
DataWorks Summit
 
PDF
Real-time Big Data Analytics Engine using Impala
Jason Shih
 
PPT
BigData Analytics with Hadoop and BIRT
Amrit Chhetri
 
PPTX
20150207 dots ラクスルの開発体制
Raksul Inc.
 
PPTX
Using Apache Drill
Chicago Hadoop Users Group
 
PPTX
Gradleでビルドするandroid NDKアプリ
Hideyuki Kikuma
 
PDF
Interactive SQL-on-Hadoop and JethroData
Ofir Manor
 
PDF
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
Naoki (Neo) SATO
 
PDF
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
Hideyuki Takeuchi
 
PPTX
The Evolution of the Hadoop Ecosystem
Cloudera, Inc.
 
PDF
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
MapR Technologies Japan
 
PPTX
Hadoopカンファレンス20140707
Recruit Technologies
 
PPTX
Schema-on-Read vs Schema-on-Write
Amr Awadallah
 
PDF
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Takuma Morikawa
 
PDF
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
 
PDF
Android cleanarchitecture
Tomoaki Imai
 
PDF
Impala Architecture presentation
hadooparchbook
 
Treasure Data and OSS
N Masahiro
 
Hadoop, SQL and NoSQL, No longer an either/or question
DataWorks Summit
 
Real-time Big Data Analytics Engine using Impala
Jason Shih
 
BigData Analytics with Hadoop and BIRT
Amrit Chhetri
 
20150207 dots ラクスルの開発体制
Raksul Inc.
 
Using Apache Drill
Chicago Hadoop Users Group
 
Gradleでビルドするandroid NDKアプリ
Hideyuki Kikuma
 
Interactive SQL-on-Hadoop and JethroData
Ofir Manor
 
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
Naoki (Neo) SATO
 
SPEEDA/NewsPicksを支える価値を生み出す技術の選定手法
Hideyuki Takeuchi
 
The Evolution of the Hadoop Ecosystem
Cloudera, Inc.
 
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
MapR Technologies Japan
 
Hadoopカンファレンス20140707
Recruit Technologies
 
Schema-on-Read vs Schema-on-Write
Amr Awadallah
 
会員数180万人のマッチングサービスpairsの 急成長を支える技術基盤 ディレクターズカット版
Takuma Morikawa
 
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
 
Android cleanarchitecture
Tomoaki Imai
 
Impala Architecture presentation
hadooparchbook
 
Ad

Similar to 20150207 何故scalaを選んだのか (17)

PDF
JavaからScalaへの継続的なマイグレーション
Makoto Fukuhara
 
PDF
Scalaでのプログラム開発
Kota Mizushima
 
PDF
ATN No.2 Scala事始め
AdvancedTechNight
 
PDF
Scala conf2013
Takafumi Ikeda
 
PDF
20160902 scalaの魅力を話してみる
Yoshitaka Fujii
 
PDF
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
 
PDF
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
 
PDF
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Kazuhiro Sera
 
PDF
Scala Daysに行ってみて - あるいはスイス旅行記 -
Kota Mizushima
 
PDF
ScalaでAndroidアプリ開発
papamitra
 
PDF
SierでScalaを試した結果 Web系に転職した話
bakenezumi
 
PPT
Scala Daysに行ってみて
Kota Mizushima
 
PDF
実戦Scala
Yuto Suzuki
 
PDF
名古屋Scala勉強会のご紹介@OSC2010名古屋
Ryo RKTM
 
KEY
Beginners scala 20121113
Taisuke Shiratori
 
PDF
Scalaの現状と課題
Kota Mizushima
 
PDF
Scala conf2013
Daisuke Kasuya
 
JavaからScalaへの継続的なマイグレーション
Makoto Fukuhara
 
Scalaでのプログラム開発
Kota Mizushima
 
ATN No.2 Scala事始め
AdvancedTechNight
 
Scala conf2013
Takafumi Ikeda
 
20160902 scalaの魅力を話してみる
Yoshitaka Fujii
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
MicroAd, Inc.(Engineer)
 
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Kazuhiro Sera
 
Scala Daysに行ってみて - あるいはスイス旅行記 -
Kota Mizushima
 
ScalaでAndroidアプリ開発
papamitra
 
SierでScalaを試した結果 Web系に転職した話
bakenezumi
 
Scala Daysに行ってみて
Kota Mizushima
 
実戦Scala
Yuto Suzuki
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
Ryo RKTM
 
Beginners scala 20121113
Taisuke Shiratori
 
Scalaの現状と課題
Kota Mizushima
 
Scala conf2013
Daisuke Kasuya
 
Ad

More from Katsunori Kanda (14)

PDF
Airflow 2.0 migration ガイド
Katsunori Kanda
 
PDF
Web Privacy Survival Guide
Katsunori Kanda
 
PDF
Airflowを広告データのワークフローエンジンとして運用してみた話
Katsunori Kanda
 
PPTX
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
 
PDF
GCSでstatic web hosting
Katsunori Kanda
 
PDF
Dockerだけではないコンテナのはなし
Katsunori Kanda
 
PDF
RealSenseを使ってCrazyflieを自律飛行させてみた
Katsunori Kanda
 
PDF
KINECT WITH ROS
Katsunori Kanda
 
PDF
Docker超入門
Katsunori Kanda
 
PPTX
Hadoopことはじめ
Katsunori Kanda
 
PDF
データファースト開発
Katsunori Kanda
 
PDF
Spark Summit 2015 参加報告
Katsunori Kanda
 
PDF
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Katsunori Kanda
 
KEY
自動テストのすすめ
Katsunori Kanda
 
Airflow 2.0 migration ガイド
Katsunori Kanda
 
Web Privacy Survival Guide
Katsunori Kanda
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Katsunori Kanda
 
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
 
GCSでstatic web hosting
Katsunori Kanda
 
Dockerだけではないコンテナのはなし
Katsunori Kanda
 
RealSenseを使ってCrazyflieを自律飛行させてみた
Katsunori Kanda
 
KINECT WITH ROS
Katsunori Kanda
 
Docker超入門
Katsunori Kanda
 
Hadoopことはじめ
Katsunori Kanda
 
データファースト開発
Katsunori Kanda
 
Spark Summit 2015 参加報告
Katsunori Kanda
 
Discretized Streams: Fault-Tolerant Streaming Computation at Scaleの解説
Katsunori Kanda
 
自動テストのすすめ
Katsunori Kanda
 

20150207 何故scalaを選んだのか