トランクベース開発【trunk-based development】

トランクベース開発とは?

バージョン管理システムを基盤とするソフトウェア開発手法の一つで、すべての開発者が「トランク」と呼ばれる単一のメインブランチに対して、短い間隔でコードを統合し続ける方式。変更を小さな単位に保ち、頻繁に本流へ反映させることで、統合時の混乱を防ぎながら開発を進められる。
トランクベース開発のイメージ画像

一般的なバージョン管理では、開発者が機能ごとに作業用ブランチを作成し、完成後にメインブランチへ統合する手順を採ることが多い。ブランチを長く保持するほど本流との差分が積み重なり、統合時のコンフリクト(競合)が多くなる。複数人が長期間ブランチを持ち続けると、統合作業だけで多大な時間と手間がかかる状態に陥る。トランクベース開発では、ブランチの存続期間を数時間から1日以内に限定するか、直接トランクコミットすることで、こうした問題を回避する。

未完成の機能を本流に含めながら開発を続けるために、「フィーチャーフラグ」(feature flag)と呼ばれる仕組みがよく使われる。これはコード内に条件分岐を設け、特定の機能の有効・無効を外部の設定で切り替えられるようにするものである。フラグを無効にしたままコードを統合すれば、開発途中の機能が利用者に公開される心配なく、チーム全体で常に最新のコードを共有し続けられる。

この手法は継続的インテグレーションCIContinuous Integration)と組み合わせて運用されることが前提となる。CIとは、コードが統合されるたびに自動でビルドとテストを実行し、問題を即座に検出する仕組みである。変更単位が小さいため問題の発生箇所が絞り込みやすく、修正も迅速に行える。こうした自動化の基盤が整っていることが、トランクを安定した状態に保つための条件となる。

実践にあたっては、自動テストの整備と開発者全員による規律ある運用が欠かせない。変更の粒度が大きいままでは統合頻度を上げることが難しく、テスト基盤が不十分な状態ではトランクの不安定化を招く恐れがある。継続的デリバリー(コードを常にリリース可能な状態に保つ仕組み)を実現する基盤として、組織的な体制が整って初めて効果を発揮する手法である。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。