一元化されたWebサービスでは、コンポーネントをソフトウェアモジュールごとにさまざまな小さなGitリポジトリに分割します。認証モジュール、認証モジュール、データアクセスモジュールなど(現時点で約15リポジトリ)
良い点は、小さなコードベースを簡単に管理できることですが、一度に複数のリポジトリを更新する必要があるため、生産性が大幅に低下します。
また、モジュールには複数のバージョンが含まれているため、展開はより困難です。常に依存関係について考える必要があります。
すべてのモジュールを1つのリポジトリにマージすることを検討しています。
私たちのサービスはすべてのモジュールが存在することを要求する必要があります、それらは私たちのサービスにとってオプションではありません
私たちは大きなチームではなく(実際には3人)、あまりにも多くのリポジトリを維持するためのオーバーヘッドはそれだけの価値はありません。すべてのコードベースに関する知識が必要です。
どう思いますか?巨大なレポに統合した場合の長所と短所はありますか?
これは本当にモジュールに依存します。サービスにはすべてのモジュールが存在する必要があると言っていますが、モジュールにはサービス(または他のモジュール)が存在する必要がありますか?
プロジェクトの不可欠な部分であるモジュールがあるが、組織上の理由からそれ自体のモジュールとして持っている場合(例-models、viewsおよび(MVCアーキテクチャのcontrollersモジュール)の場合、それらは一緒に更新される可能性があるため、メインプロジェクトと同じリポジトリに配置することをお勧めします。
一方、ライブラリのように機能するモジュールがあり、スタンドアロンモジュールとして簡単に操作して、他のプロジェクトでその機能を使用できる場合は、独自のリポジトリに保持することをお勧めします。
15個のモジュールがあるので、両方の種類があることは間違いありません。すべてを単一のリポジトリに変換する必要はありません。たぶん、メインリポジトリは10個のモジュールで構成され、別のモジュールはスタンドアロンライブラリであるため、独自のリポジトリを持ち、他の4つのモジュールもライブラリですが、意味を成すために一緒にする必要があるため、すべてを3番目に配置します。リポジトリ。もちろん、分布は恣意的であってはなりません-それはモジュール間の論理的結合に基づいているべきです(現在の結合ではなく-あなたが正しい設計だと思うもの)-しかしとにかくあなたはおそらくより低く、より多くを得るでしょう維持可能な量のモジュール。
また、すべてのモジュールを追跡するのに問題がある場合は、 Git Submodules の使用を検討する必要があります。サブモジュールを使用すると、他のリポジトリにある正しいバージョンのモジュールを保持でき、サブモジュールから直接コミットしてプッシュできます( これには注意してください! )。これにより、多くのモジュールでの作業が簡単になります。