【ポリレポ】

ポリレポ とは?

最終更新:
💡 コードを複数のリポジトリに分けて管理する

複数のリポジトリにコードを分けて管理する開発スタイル。サービスやライブラリなどを別のリポジトリに置き、管理の単位を分ける。

📌 このページのポイント
コードの保管場所を分ける フロント web リポジトリ 個別の リリース バック api リポジトリ 個別の リリース モバイル mobile リポジトリ 個別の リリース 依存関係が許せば個別にリリース API・共通ライブラリの変更は調整が必要
フロント・バック・モバイルを分ける例。矢印は各コードのリリースを表しますが、別のリポジトリへの依存があれば変更の調整が必要です。
ひよこ ひよこ
ポリレポって何?
ペンギン先生 ペンギン先生
複数のリポジトリにコードを分けて管理する開発スタイルだよ。たとえばフロントエンド・バックエンド・モバイルを別々に置く。分ける単位は設計や運用に合わせて決めるので、必ず1サービスに1リポジトリという決まりではないんだ。
ひよこ ひよこ
モノレポとの違いは、まとめて公開するかどうか?
ペンギン先生 ペンギン先生
まずはコードを置く場所の違いだよ。モノレポでもサービスを個別にデプロイできるし、マイクロサービスだから必ずポリレポというわけでもない。リポジトリの分割と、サービスの動かし方は分けて考えよう。
ひよこ ひよこ
どんなメリットがあるの?
ペンギン先生 ペンギン先生
リポジトリごとにアクセス権や開発手順を決めやすいよ。依存関係が許せば、個別のスケジュールでリリースすることもできる。ただし、別のリポジトリのAPIや共通ライブラリを使っていれば、その変更の影響は受けるんだ。
ひよこ ひよこ
リポジトリをまたぐ変更は大変?
ペンギン先生 ペンギン先生
複数のPRやリリースの調整が必要になることがあるよ。たとえばAPIの応答形式を変えるなら、呼び出す側との互換性を保つなどの工夫が必要だね。共通ライブラリのバージョンや、各リポジトリのCIも管理することになる。
ひよこ ひよこ
どっちを選べばいいの?
ペンギン先生 ペンギン先生
共通コードをどれくらい使うか、変更を一緒に進めたいか、アクセス権を分けたいか、運用を維持できるかを考えよう。チームの人数だけで決めるものではないよ。複数のモノレポを使う構成など、組み合わせる方法もあるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ポリレポ」って出てきたら「複数リポジトリに分けて管理するスタイル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Polyrepo」 = 複数リポジトリ
💬 Poly(多数の)+ Repository(リポジトリ)の造語。反対語のMonorepo(モノレポ)と対になる概念だよ

参考資料

← 用語集にもどる