狠狠撸

狠狠撸Share 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

20150207 何故scalaを選んた?のか