株式会社waja 安藤様 登壇資料

16
コードレビューシステム構築 Gerrit, Jenkinsを用いた自動化、およびTDD, DDDによる設計洗練手法導入まで~ 2015/10/29 株式会社waja エンジニア 安藤 大輔

Upload: leveragesevent

Post on 15-Apr-2017

2.011 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: 株式会社waja 安藤様 登壇資料

コードレビューシステム構築~Gerrit, Jenkinsを用いた自動化、およびTDD, DDDによる設計洗練手法導入まで~

2015/10/29株式会社waja エンジニア

安藤 大輔

Page 2: 株式会社waja 安藤様 登壇資料

目次

1. wajaご紹介

2. 今までのコードレビュー

3. コードレビューシステム

4. 設計との親和性

5. まとめ

Page 3: 株式会社waja 安藤様 登壇資料

C2Cマーケットプレイス

海外ファッション通販

フルフィルメントサービス

http://www.waja.co.jp/

1. wajaご紹介

Page 4: 株式会社waja 安藤様 登壇資料

1. wajaご紹介

ほぼ100%内製

インフラ/ネットワーク構築など、一部委託

開発体制

デザイナ3名

エンジニア2名+新人1名(+10月JOIN 2名)

スタッフ33名中男性8名(24%)

Page 5: 株式会社waja 安藤様 登壇資料

1. wajaご紹介

ファーストコミット:2005年9月(Subversion)

同じコードベース、同じ技術

Java1.4 → Java7

Tomcat5.5 → Tomcat7

Spring1.x → Spring4.x

PostgreSQL7.4 → PostgreSQL9.2

肥大化!

Page 6: 株式会社waja 安藤様 登壇資料

2. 今までのコードレビュー

やりたいときに、やりたい人が、やりたい分だけ!

少人数だし。。

忙しいときは。。(ごにょごにょ

テスト?おいしいの?

Page 7: 株式会社waja 安藤様 登壇資料

2. 今までのコードレビュー

気づき

実装が絡み合って修正がツラい

影響範囲がワカラない(読めない)

出続けるバグ、運用と開発の板挟み

開発者が増えたら・・・

変わろう!

Page 8: 株式会社waja 安藤様 登壇資料

3. コードレビューシステム

解決方針

長期運用しても設計を保つ

デグレードしにくい

影響範囲の見極め・見積しやすい

現行システムを複数のアプリに分割

Page 9: 株式会社waja 安藤様 登壇資料

3. コードレビューシステム

採用を決めたモノ

DDD(ドメイン駆動設計)

TDD(テスト駆動開発)

Gerrit(OSSのレビューツール)

Jenkins(OSSの継続的インテグレーションツール)

Page 10: 株式会社waja 安藤様 登壇資料
Page 11: 株式会社waja 安藤様 登壇資料

4. 設計との親和性

作業フロー適正化

UnitTest結果、レビュー結果の通知自動化

マージ後のステージング環境デプロイ自動化

(今後)コードメトリクス自動収集

開発に集中

Page 12: 株式会社waja 安藤様 登壇資料

4. 設計との親和性

設計・仕様に立ち返ることができる

Testからレビュー

システムサポート(行・ファイルコメント)

チャットツール・立ち話との併用

議論の活発化

Page 13: 株式会社waja 安藤様 登壇資料

4. 設計との親和性

具体的なメリット

不具合が減った

(気分的にも)修正しやすくなった

コードを人に見せても良いと思い始めた

品質向上!

Page 14: 株式会社waja 安藤様 登壇資料

5. まとめ

肥大化したシステムを運用しやすく

アプリ分割・設計洗練

時間を捻出し、開発に集中する

ツールのサポート・自動化

Page 15: 株式会社waja 安藤様 登壇資料

5. まとめ

TDD/DDDが向いている

PMF(Product Market Fit)を超えたアプリケーション

スタートアップ、フロントアプリには向かない

Page 16: 株式会社waja 安藤様 登壇資料

ご清聴ありがとうございました