repo スタイルの争い:mono repo と multi repo の選び方#
#Android #Dev
組織の構造がコードの構造を決定する - lotosbin
ソフトウェア開発では、コードの保存とバージョン管理の方法がプロジェクト全体のプロセスと効率に大きな影響を与えます。この点で、monorepo と multirepo は 2 つの主要な管理スタイルであり、その議論は常に存在しています。では、monorepo と multirepo とは何でしょうか?そして、どのように選ぶべきでしょうか?この記事では、詳細に説明します。
mono repo と multi repo の定義#
mono repoは、単一のリポジトリを意味し、すべてのプロジェクトのコードを同じリポジトリに格納することを指します。monorepo の極端なモードの 1 つは Google であり、彼らは会社のほぼすべてのコードを 1 つの巨大なコードベースに格納しています。
multi repoは、複数のリポジトリにコードを格納することを意味し、各サブプロジェクトまたはモジュールには独自のリポジトリがあります。
mono repo と multi repo の利点と欠点#
-
mono repoの利点
-
コードの共有と再利用が容易です。
-
コードの一貫性を保証できます。
-
大規模な組織では、統一されたバージョン管理とビルドツールにより、メンテナンスコストが削減されます。
欠点は以下の通りです:
-
リポジトリが非常に大きくなるため、バージョン管理システムや CI/CD システムに負荷をかける可能性があります。
-
正確なアクセス制御と権限管理を実現するのは難しいです。
-
-
multi repoの利点
-
各リポジトリは独立して開発とデプロイができ、並行開発に適しています。
-
より良いアクセス制御 - 各リポジトリには独自のアクセス制御が可能です。
欠点は以下の通りです:
-
一連のリポジトリのビルドとデプロイの設定を維持するのは複雑かもしれません。
-
複数のリポジトリを跨いで変更するのは難しいです。
-
選び方#
mono repo と multi repo の選択は、プロジェクトとチームの実際のニーズに基づいて考慮する必要があります。
チーム内で共有および再利用する必要があるコードが多くあり、統一されたビルドおよびテストツールが好ましい場合、monorepo がより良い選択肢かもしれません。ただし、この方法をサポートするためには強力なインフラストラクチャが必要です。
逆に、モジュール化と独立した開発を好むチームで、各プロジェクトには独自のライフサイクルがある場合、multirepo がより適しています。この方法は柔軟性が高く、ただし、リポジトリの設定とメンテナンスにはより多くの時間がかかります。
全体的に言えば、mono repo と multi repo には絶対的な良し悪しはありません。プロジェクトに最適なものを選ぶことで、開発プロセスを改善し、開発効率を向上させることができます。まず、各方法の利点と欠点をよく理解し、自身のニーズに基づいて選択してください。