株式会社waja 安藤様 登壇資料
-
Upload
leveragesevent -
Category
Engineering
-
view
2.011 -
download
1
Transcript of 株式会社waja 安藤様 登壇資料
![Page 1: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/1.jpg)
コードレビューシステム構築~Gerrit, Jenkinsを用いた自動化、およびTDD, DDDによる設計洗練手法導入まで~
2015/10/29株式会社waja エンジニア
安藤 大輔
![Page 2: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/2.jpg)
目次
1. wajaご紹介
2. 今までのコードレビュー
3. コードレビューシステム
4. 設計との親和性
5. まとめ
![Page 4: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/4.jpg)
1. wajaご紹介
ほぼ100%内製
インフラ/ネットワーク構築など、一部委託
開発体制
デザイナ3名
エンジニア2名+新人1名(+10月JOIN 2名)
スタッフ33名中男性8名(24%)
![Page 5: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/5.jpg)
1. wajaご紹介
ファーストコミット:2005年9月(Subversion)
同じコードベース、同じ技術
Java1.4 → Java7
Tomcat5.5 → Tomcat7
Spring1.x → Spring4.x
PostgreSQL7.4 → PostgreSQL9.2
肥大化!
![Page 6: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/6.jpg)
2. 今までのコードレビュー
やりたいときに、やりたい人が、やりたい分だけ!
少人数だし。。
忙しいときは。。(ごにょごにょ
テスト?おいしいの?
![Page 7: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/7.jpg)
2. 今までのコードレビュー
気づき
実装が絡み合って修正がツラい
影響範囲がワカラない(読めない)
出続けるバグ、運用と開発の板挟み
開発者が増えたら・・・
変わろう!
![Page 8: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/8.jpg)
3. コードレビューシステム
解決方針
長期運用しても設計を保つ
デグレードしにくい
影響範囲の見極め・見積しやすい
現行システムを複数のアプリに分割
![Page 9: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/9.jpg)
3. コードレビューシステム
採用を決めたモノ
DDD(ドメイン駆動設計)
TDD(テスト駆動開発)
Gerrit(OSSのレビューツール)
Jenkins(OSSの継続的インテグレーションツール)
![Page 10: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/10.jpg)
![Page 11: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/11.jpg)
4. 設計との親和性
作業フロー適正化
UnitTest結果、レビュー結果の通知自動化
マージ後のステージング環境デプロイ自動化
(今後)コードメトリクス自動収集
開発に集中
![Page 12: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/12.jpg)
4. 設計との親和性
設計・仕様に立ち返ることができる
Testからレビュー
システムサポート(行・ファイルコメント)
チャットツール・立ち話との併用
議論の活発化
![Page 13: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/13.jpg)
4. 設計との親和性
具体的なメリット
不具合が減った
(気分的にも)修正しやすくなった
コードを人に見せても良いと思い始めた
品質向上!
![Page 14: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/14.jpg)
5. まとめ
肥大化したシステムを運用しやすく
アプリ分割・設計洗練
時間を捻出し、開発に集中する
ツールのサポート・自動化
![Page 15: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/15.jpg)
5. まとめ
TDD/DDDが向いている
PMF(Product Market Fit)を超えたアプリケーション
スタートアップ、フロントアプリには向かない
![Page 16: 株式会社waja 安藤様 登壇資料](https://reader030.fdocument.pub/reader030/viewer/2022013109/58f1d9341a28ab4f218b4617/html5/thumbnails/16.jpg)
ご清聴ありがとうございました