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

Post on 09-Apr-2017

400 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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. 難易度や工数の共有は大切です

まとめ

top related