【ポリレポ】

ポリレポ とは?

💡 1プロジェクト1部屋、それがポリレポ流
📌 このページのポイント
ポリレポ:サービスごとに独立したリポジトリ 1チーム = 1リポジトリ = 1サービス repo-frontend チームA フロントエンド repo-backend チームB バックエンド repo-mobile チームC モバイル Deploy A Deploy B Deploy C 各チームが独立してリリース可能
ポリレポのイメージ:サービスごとに独立したリポジトリで管理
ひよこ ひよこ

ポリレポって何?

ペンギン先生 ペンギン先生

複数のリポジトリにプロジェクトを分けて管理する開発スタイルだよ。たとえばフロントエンド・バックエンド・モバイルをそれぞれ別のリポジトリに置くイメージだね。

ひよこ ひよこ

モノレポとは違うの?

ペンギン先生 ペンギン先生

モノレポは全部を1つのリポジトリにまとめる方式で、ポリレポはその逆。「1サービス・1リポジトリ」が基本の考え方だよ。

ひよこ ひよこ

どんなメリットがあるの?

ペンギン先生 ペンギン先生

チームごとに独立して開発・デプロイできるのが大きなメリットだね。他チームの変更に影響されず、リリーススケジュールも自分たちで決められるよ。

ひよこ ひよこ

デメリットもあるんだよね?

ペンギン先生 ペンギン先生

あるよ。複数リポジトリをまたぐ変更が必要なとき、複数のPRを出して順番にマージしなきゃいけないから調整コストが上がるんだ。共通ライブラリバージョン管理も面倒になりがちだね。

ひよこ ひよこ

マイクロサービスと組み合わせることが多いって聞いたんだけど、なんで?

ペンギン先生 ペンギン先生

マイクロサービスは各サービスを独立してデプロイする設計だから、リポジトリも独立させるポリレポとの相性が自然に良いんだよ。チームとサービスとリポジトリが1対1対1になる「コンウェイの法則」的な整理感があるね。

ひよこ ひよこ

どっちを選べばいいの?

ペンギン先生 ペンギン先生

チームが小さいうちはモノレポが便利で、組織が大きくなってサービスの独立性が重要になってきたらポリレポに移行するパターンが多いよ。正解はないけど、チームの規模と独立性のバランスで決めるのが定石だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ポリレポ」って出てきたら「複数リポジトリに分けて管理するスタイル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Polyrepo」 = 複数リポジトリ
💬 Poly(多数の)+ Repository(リポジトリ)の造語。反対語のMonorepo(モノレポ)と対になる概念だよ
← 用語集にもどる