SlideShare a Scribd company logo
1 of 28
アダプターパターンを使って
リリースブランチを排除
codeArts 株式会社
政倉 智
はじめに
● 継続的デリバリーの中からの紹介です
– http://www.amazon.co.jp/dp/4048707876
こんな経験はありませんか?
ホゲライブラリが開発終了
ホゲライブラリ開発チームはホゲライブラリの開発を終了し、メン
テナンスを終了すると発表した。今後はセキュリティフィックスを
中心に作業が行われる。
サポートは来年いっぱいで終了する。
開発チームは代わりとなるライブラリに移行して欲しいと話してい
る。
「なんだってーーー!」
「しょうがない
類似品のフガライブラリに切り替えるか」
「移行用にブランチ切って...」
そして半年過ぎて...
「コンフリクトしまくってマージできないよ
う...」
そして一週間過ぎて...
「よっしゃ!終わった!リリースするで!」
利用者「昔のバグが復活してる!」
「masterの過去のバグ修正
マージの際に潰しちゃってるわ...」
「なおすで!再リリースやで!」
利用者「まだバグだらけで使い物にならない...」
「今日も徹夜やで...」
アダプターパターンとかどうでしょ?
アプリ ホゲライブラリ
アプリ ホゲライブラリ
ホゲ
アダプター
アプリ ホゲライブラリ
ホゲ
アダプター
<<interface>>
アダプター
アプリ
ホゲライブラリ
ホゲ
アダプター
<<interface>>
アダプター
実装
アダプター
ファクトリ
アプリ
ホゲライブラリ
ホゲ
アダプター
<<interface>>
アダプター
実装
アダプター
ファクトリ
デフォルト
フガ
アダプター
フガライブラリ
実装
アプリ
ホゲライブラリ
ホゲ
アダプター
<<interface>>
アダプター
実装
アダプター
ファクトリ
フガ
アダプター
フガライブラリ
実装
デフォルト
● 設定ファイルとかでフガライブラリを使えるよ
うにしておく
– 開発者とかテスターとか一部の人にだけ有効にして
もらう
● 安定したと思ったらフガライブラリをデフォル
トに
– 利用者からのバグ報告が多ければデフォルトをホゲ
ライブラリに戻す
アダプターパターンとストラテジーパターンの
組み合わせ!
ブランチ切る必要ないです!
マージの時のミスが発生しません!
開発中なコードもmasterで管理しよう!

More Related Content

What's hot

「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話Yuki Kuramochi
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上Tatsuya Ishikawa
 
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendlyTatsuya Ishikawa
 
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せWordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せSeto Takahiro
 
確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグイン確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグインKawaji Masaki
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話Y Watanabe
 
2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研dmcc2015
 
20191003 classi night-04
20191003 classi night-0420191003 classi night-04
20191003 classi night-04Akihiko Kigure
 
iOSのCI as a Service事情
iOSのCI as a Service事情iOSのCI as a Service事情
iOSのCI as a Service事情Hiroshi Maekawa
 
究極にして至高のWAF
究極にして至高のWAF究極にして至高のWAF
究極にして至高のWAFYuki Ishikawa
 

What's hot (10)

「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
「現場のプロが教えるWebデザイン新・スタンダードテクニック37」に載っているテクニックでLP作ってみた話
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly
 
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せWordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
 
確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグイン確認・検討にちょっと役立つプラグイン
確認・検討にちょっと役立つプラグイン
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
 
2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研
 
20191003 classi night-04
20191003 classi night-0420191003 classi night-04
20191003 classi night-04
 
iOSのCI as a Service事情
iOSのCI as a Service事情iOSのCI as a Service事情
iOSのCI as a Service事情
 
究極にして至高のWAF
究極にして至高のWAF究極にして至高のWAF
究極にして至高のWAF
 

More from tomo_masakura

Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性tomo_masakura
 
HTML5 開発環境の紹介
HTML5 開発環境の紹介HTML5 開発環境の紹介
HTML5 開発環境の紹介tomo_masakura
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発tomo_masakura
 
Git トピックブランチと歴史の改ざん
Git トピックブランチと歴史の改ざんGit トピックブランチと歴史の改ざん
Git トピックブランチと歴史の改ざんtomo_masakura
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeomantomo_masakura
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考えるtomo_masakura
 

More from tomo_masakura (7)

Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
 
HTML5 開発環境の紹介
HTML5 開発環境の紹介HTML5 開発環境の紹介
HTML5 開発環境の紹介
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
 
HTML5 のお話
HTML5 のお話HTML5 のお話
HTML5 のお話
 
Git トピックブランチと歴史の改ざん
Git トピックブランチと歴史の改ざんGit トピックブランチと歴史の改ざん
Git トピックブランチと歴史の改ざん
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
MVC の Model を考える
MVC の Model を考えるMVC の Model を考える
MVC の Model を考える
 

アダプターパターンを使って リリースブランチを排除