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

33
1 年年年年 Scala 年年年年年年年年年年年 年年 年年年年 CyberZ 年年年年 2017/03/17

Upload: michihito-shigemura

Post on 09-Apr-2017

400 views

Category:

Internet


1 download

TRANSCRIPT

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

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

株式会社 CyberZ重村道人2017/03/17

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

shigemk2でなんかいろいろやってます株式会社 CyberZ重村道人

2017/03/17

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

1. 大卒ニートがプログラマーを志す2. オンライン英会話サービス3. ソシャゲ4. アフィリエイトサービス5. CyberZ

経歴

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

お題 : Scala プロジェクトを振り返る

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

• 広告配信システム• アドネットワーク一括管理システム

やったプロジェクト

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

やってきたプロジェクト広告配信システム アドネットワーク一括

管理システム内容 DSP 各種広告配信システム

一括管理フェーズ 新規事業 運用フェーズ

Scala のアーキテクチャ Spray Play Framework

人数 10 人 3 人

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

1. 新規事業 開発→リリース (4 ヶ月 )2. リファクタリング (3 ヶ月 )3. 新規事業 開発 (2 ヶ月 )4. 新規事業 運用 (6 ヶ月 )

フェーズ

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

1. 新規事業開発→リリース (4 ヶ月 )2. リファクタリング (3 ヶ月 )3. 新規事業開発 (2 ヶ月 )4. 運用 (6 ヶ月 )

フェーズ : 新規事業時代

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

新規事業時代を振り返ってみる

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

一番重要だったこと

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

スピード > > > > > 品質

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

品質を振り返る

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

自前実装 1: キャッシュ

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

自前実装 1: キャッシュ

ScalaCache とか使えばよかったんじゃないかなー

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

自前実装 2: 設定の読み込み

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

自前実装 2: 設定の読み込み

getConfig とか実装する必要なさそう

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

お疲れ様です

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

お疲れ様です

scalaz とか…

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

車輪の再発明

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

をしていることが分からないOR放置

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

• 各人の Scala 力が低い• ちゃんとレビューが出来る人の不在• ライブラリとかミドルウェアを知らない• 時間がなさすぎることに対する焦り• 違和感の放置

なんでそうなる?

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

• 実装力が低すぎる• 使えるライブラリを知らなさすぎる• アーキレベルからのレビューの必要性

振り返り

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

• 実装力が低すぎる• とにかく書く

• 使えるライブラリを知らなさすぎる• 別のプロジェクトのアーキを参考にしてみる

• アーキレベルからのレビューの必要性

振り返り ( 対策 )

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

1. 新規事業開発→リリース (4 ヶ月 )2. リファクタリング (3 ヶ月 )3. 新規事業開発 (2 ヶ月 )4. 運用 (6 ヶ月 )

フェーズ : リファクタリング

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

リファクタリング時代 (3 ヶ月 ) を振り返ってみる

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

• 機能追加 ( 設計、実装、テストまで )• 使わない機能をオミットする• クリーンアーキテクチャでリファクタ

• clean-adapter• clean-domain• clean-other• clean-usecase

この時期にやったこと

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

• コードを読んでも何をやっているのかイマイチ良くワカラナイ…

• すぐにキャッチアップしたい…

リファクタリング

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

build.sbt に記載されてる全てのライブラリでサンプルコードを組んでみよう!

リファクタリング

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

全部で 60 くらいあった

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

全てのライブラリでサンプルを組んだ

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

Java ライブラリも使える

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

開発の幅が増えた

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

1. Scala でも Java のライブラリが使えるよ

2. いきなり実装する前に 検討しようライブラリ / ミドル

3. 難易度や工数の共有は大切です

まとめ