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

Contenu connexe

Tendances

AngulaとElixirの新しい関係
AngulaとElixirの新しい関係AngulaとElixirの新しい関係
AngulaとElixirの新しい関係
陸 谷出
 

Tendances (20)

WebRTC on Edge
WebRTC on EdgeWebRTC on Edge
WebRTC on Edge
 
進化するEdge+α
進化するEdge+α進化するEdge+α
進化するEdge+α
 
若手がコミュニティを盛り上げよう!
 若手がコミュニティを盛り上げよう!  若手がコミュニティを盛り上げよう!
若手がコミュニティを盛り上げよう!
 
未知との交信!?Project SignalR
未知との交信!?Project SignalR未知との交信!?Project SignalR
未知との交信!?Project SignalR
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
 
AngulaとElixirの新しい関係
AngulaとElixirの新しい関係AngulaとElixirの新しい関係
AngulaとElixirの新しい関係
 
Riot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディングRiot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディング
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1
 
Jenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいますJenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいます
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
 
Visual Studio 拡張機能の作り方
Visual Studio 拡張機能の作り方Visual Studio 拡張機能の作り方
Visual Studio 拡張機能の作り方
 
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
Code igniter + ci phpunit-test
Code igniter + ci phpunit-testCode igniter + ci phpunit-test
Code igniter + ci phpunit-test
 
東京Node学園 15時限目めも
東京Node学園 15時限目めも東京Node学園 15時限目めも
東京Node学園 15時限目めも
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
 

En vedette

Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014
Sadayuki Furuhashi
 

En vedette (7)

PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう
 
Goをえらんだ理由
Goをえらんだ理由Goをえらんだ理由
Goをえらんだ理由
 
マスターオブゴールーチンアンドチャネル スタートGo #1
マスターオブゴールーチンアンドチャネル   スタートGo #1マスターオブゴールーチンアンドチャネル   スタートGo #1
マスターオブゴールーチンアンドチャネル スタートGo #1
 
Random forest の解説
Random forest の解説Random forest の解説
Random forest の解説
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014Presto - Hadoop Conference Japan 2014
Presto - Hadoop Conference Japan 2014
 
女性向けサービスでコンバージョン数を爆上げさせた話 〜ネイルブックが1年間でCV数を69倍にした方法〜
女性向けサービスでコンバージョン数を爆上げさせた話 〜ネイルブックが1年間でCV数を69倍にした方法〜女性向けサービスでコンバージョン数を爆上げさせた話 〜ネイルブックが1年間でCV数を69倍にした方法〜
女性向けサービスでコンバージョン数を爆上げさせた話 〜ネイルブックが1年間でCV数を69倍にした方法〜
 

Similaire à 20151029 ヒカラボ講演資料

Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料
Masaki Muranaka
 

Similaire à 20151029 ヒカラボ講演資料 (20)

The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
 
今日日の展開計画について
今日日の展開計画について今日日の展開計画について
今日日の展開計画について
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
 
Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料
 
STAC2022 ローコード開発におけるテストピラミッド考察
STAC2022 ローコード開発におけるテストピラミッド考察STAC2022 ローコード開発におけるテストピラミッド考察
STAC2022 ローコード開発におけるテストピラミッド考察
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
 

20151029 ヒカラボ講演資料