SlideShare uma empresa Scribd logo
1 de 33
1年くらい
Scalaプロジェクトに
関わった結果
株式会社CyberZ
重村道人
2017/03/17
shigemk2
でなんかいろいろ
やってます
株式会社CyberZ
重村道人
2017/03/17
1. 大卒ニートがプログラマーを志す
2. オンライン英会話サービス
3. ソシャゲ
4. アフィリエイトサービス
5. CyberZ
経歴
お題: Scalaプロジェクトを
振り返る
• 広告配信システム
• アドネットワーク一括管理システム
やったプロジェクト
やってきたプロジェクト
広告配信システム
アドネットワーク一括
管理システム
内容 DSP
各種広告配信システム
一括管理
フェーズ 新規事業 運用フェーズ
Scalaの
アーキテクチャ
Spray Play Framework
人数 10人 3人
1. 新規事業 開発→リリース(4ヶ月)
2. リファクタリング(3ヶ月)
3. 新規事業 開発(2ヶ月)
4. 新規事業 運用(6ヶ月)
フェーズ
1. 新規事業開発→リリース(4ヶ月)
2. リファクタリング(3ヶ月)
3. 新規事業開発(2ヶ月)
4. 運用(6ヶ月)
フェーズ: 新規事業時代
新規事業時代を振り返ってみる
一番重要だったこと
スピード > > > > > 品質
品質を振り返る
自前実装1: キャッシュ
自前実装1: キャッシュ
ScalaCacheとか使えばよかったんじゃないかなー
自前実装2: 設定の読み込み
自前実装2: 設定の読み込み
getConfigとか実装する必要なさそう
お疲れ様です
お疲れ様です
scalazとか…
車輪の再発明
をしていることが分からない
OR
放置
• 各人のScala力が低い
• ちゃんとレビューが出来る人の不在
• ライブラリとかミドルウェアを知らない
• 時間がなさすぎることに対する焦り
• 違和感の放置
なんでそうなる?
• 実装力が低すぎる
• 使えるライブラリを知らなさすぎる
• アーキレベルからのレビューの必要性
振り返り
• 実装力が低すぎる
• とにかく書く
• 使えるライブラリを知らなさすぎる
• 別のプロジェクトのアーキを参考にしてみる
• アーキレベルからのレビューの必要性
振り返り(対策)
1. 新規事業開発→リリース(4ヶ月)
2. リファクタリング(3ヶ月)
3. 新規事業開発(2ヶ月)
4. 運用(6ヶ月)
フェーズ: リファクタリング
リファクタリング時代(3ヶ月)を振り返ってみる
• 機能追加(設計、実装、テストまで)
• 使わない機能をオミットする
• クリーンアーキテクチャでリファクタ
• clean-adapter
• clean-domain
• clean-other
• clean-usecase
この時期にやったこと
• コードを読んでも何をやっているの
かイマイチ良くワカラナイ…
• すぐにキャッチアップしたい…
リファクタリング
build.sbtに記載されてる全ての
ライブラリで
サンプルコードを組んでみよう!
リファクタリング
全部で60くらいあった
全てのライブラリでサンプルを組んだ
Javaライブラリも使える
開発の幅が増えた
1. ScalaでもJavaのライブラリが使えるよ
2. いきなり実装する前に 検討しようライブ
ラリ/ミドル
3. 難易度や工数の共有は大切です
まとめ

Mais conteúdo relacionado

Mais procurados

師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
hiboma
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 

Mais procurados (20)

ハッカソンに使うSwift & Swift 3.0のGCD
ハッカソンに使うSwift & Swift 3.0のGCDハッカソンに使うSwift & Swift 3.0のGCD
ハッカソンに使うSwift & Swift 3.0のGCD
 
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
 
寿司x職人 10年働いて思いを馳せるすし職人とエンジニアの共通項
寿司x職人 10年働いて思いを馳せるすし職人とエンジニアの共通項寿司x職人 10年働いて思いを馳せるすし職人とエンジニアの共通項
寿司x職人 10年働いて思いを馳せるすし職人とエンジニアの共通項
 
手っ取り早くプロジェクトをなんとかしたい人のためのnanapi流ツール活用術~WebSig会議 vol.34「Webディレクター必見!プロジェクトを成功に...
手っ取り早くプロジェクトをなんとかしたい人のためのnanapi流ツール活用術~WebSig会議 vol.34「Webディレクター必見!プロジェクトを成功に...手っ取り早くプロジェクトをなんとかしたい人のためのnanapi流ツール活用術~WebSig会議 vol.34「Webディレクター必見!プロジェクトを成功に...
手っ取り早くプロジェクトをなんとかしたい人のためのnanapi流ツール活用術~WebSig会議 vol.34「Webディレクター必見!プロジェクトを成功に...
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
 
インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 
Spring知っておきたい
Spring知っておきたいSpring知っておきたい
Spring知っておきたい
 
情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略情報共有から始めるチーム開発とキャリア戦略
情報共有から始めるチーム開発とキャリア戦略
 
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニアヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
 
Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
 
Apexトリガと標準自動化プロセスの違い
Apexトリガと標準自動化プロセスの違いApexトリガと標準自動化プロセスの違い
Apexトリガと標準自動化プロセスの違い
 
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
 
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
180421第8回関西DB勉強会- たまにはpgAdmin4も使ってみよう
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
 

Destaque

Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
 
Type-safe front-end development with Scala
Type-safe front-end development with ScalaType-safe front-end development with Scala
Type-safe front-end development with Scala
takezoe
 
ISUCONの話(夏期講習2014)
ISUCONの話(夏期講習2014)ISUCONの話(夏期講習2014)
ISUCONの話(夏期講習2014)
SATOSHI TAGOMORI
 

Destaque (20)

Scala on gae
Scala on gaeScala on gae
Scala on gae
 
Web屋の運用その極意
Web屋の運用その極意Web屋の運用その極意
Web屋の運用その極意
 
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
 
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
 
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
 
複数拠点における開発効率の維持・向上
複数拠点における開発効率の維持・向上複数拠点における開発効率の維持・向上
複数拠点における開発効率の維持・向上
 
Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話
 
Spark Security
Spark SecuritySpark Security
Spark Security
 
Type-safe front-end development with Scala
Type-safe front-end development with ScalaType-safe front-end development with Scala
Type-safe front-end development with Scala
 
Preparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuriPreparing for distributed system failures using akka #ScalaMatsuri
Preparing for distributed system failures using akka #ScalaMatsuri
 
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
 
UIも大事だよ。という話。@Opt Group Tech Day
UIも大事だよ。という話。@Opt Group Tech DayUIも大事だよ。という話。@Opt Group Tech Day
UIも大事だよ。という話。@Opt Group Tech Day
 
DNSの運用を考える
DNSの運用を考えるDNSの運用を考える
DNSの運用を考える
 
連続最適化勉強会
連続最適化勉強会連続最適化勉強会
連続最適化勉強会
 
AWSで始めるサーバレスな RESTful API システム
AWSで始めるサーバレスな RESTful API システムAWSで始めるサーバレスな RESTful API システム
AWSで始めるサーバレスな RESTful API システム
 
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
 
十人十色のScalaの始め方
十人十色のScalaの始め方十人十色のScalaの始め方
十人十色のScalaの始め方
 
【広報LT】 掲載数を10倍あげるコツ
【広報LT】 掲載数を10倍あげるコツ【広報LT】 掲載数を10倍あげるコツ
【広報LT】 掲載数を10倍あげるコツ
 
ISUCONの話(夏期講習2014)
ISUCONの話(夏期講習2014)ISUCONの話(夏期講習2014)
ISUCONの話(夏期講習2014)
 
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
 

Semelhante a 1年くらいScalaプロジェクトに関わった結果 #ichigayageek

ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
Recruit Technologies
 

Semelhante a 1年くらいScalaプロジェクトに関わった結果 #ichigayageek (20)

Stripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったことStripeを1年使ってみて思ったこと
Stripeを1年使ってみて思ったこと
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
The new LINE Ads Platform
The new LINE Ads PlatformThe new LINE Ads Platform
The new LINE Ads Platform
 
インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計インターネット広告の概要とシステム設計
インターネット広告の概要とシステム設計
 
[事例紹介]Scalaで物流倉庫システム作ったよ
[事例紹介]Scalaで物流倉庫システム作ったよ [事例紹介]Scalaで物流倉庫システム作ったよ
[事例紹介]Scalaで物流倉庫システム作ったよ
 
新規事業を加速させる技術
新規事業を加速させる技術新規事業を加速させる技術
新規事業を加速させる技術
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング
 
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampイントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
 
新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
20200717 kanazawauniv takasu キャリア、コミュニティとアカデミア、そして事業開発
20200717 kanazawauniv takasu  キャリア、コミュニティとアカデミア、そして事業開発20200717 kanazawauniv takasu  キャリア、コミュニティとアカデミア、そして事業開発
20200717 kanazawauniv takasu キャリア、コミュニティとアカデミア、そして事業開発
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
【SAP Inside Track Tokyo 2021 DAT】SAP Analytics Cloud導入事例とポイント
 
Deep Learning on Rescale - Oct/11/2016 at Rescale night
Deep Learning on Rescale - Oct/11/2016 at Rescale nightDeep Learning on Rescale - Oct/11/2016 at Rescale night
Deep Learning on Rescale - Oct/11/2016 at Rescale night
 
Nyle流 Scalaとの付き合い方
Nyle流 Scalaとの付き合い方Nyle流 Scalaとの付き合い方
Nyle流 Scalaとの付き合い方
 
170520 DataSpider DevConn Hackathon
170520 DataSpider DevConn Hackathon170520 DataSpider DevConn Hackathon
170520 DataSpider DevConn Hackathon
 
企業報告会スライド
企業報告会スライド企業報告会スライド
企業報告会スライド
 
NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介
NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介
NRIのプロジェクト管理ソリューションにおけるKibanaを用いたログ活用事例紹介
 
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
[GrapeCity Web TECH FORUM 2018]グレープシティJavaScript製品のご紹介 活用のコツと開発のポイント
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
 

1年くらいScalaプロジェクトに関わった結果 #ichigayageek