2017-09-28 13 views
0

私たちのアプリは、マイクロサービスアーキテクチャ、1つのサービス1レポに組み込まれています。多くの企業がこの慣習に従っているように、私たちはモノレポを作成すべきかどうか検討しています。モノとモノの賛否両論について多くの議論があります。私たちが両方のオプションからいくつかの短所を持つことを可能にする代替手段を見つけたい場合は、gitサブモジュールを使って '類似した'モノ構造を提供するべきですか?モノレポVS。 github submodules

答えて

1

はい、そこに悪/良いとサブモジュールについて多くの議論があるが、私はいくつかが間違ってそれらを使用していることを考える傾向にあります。ちょうどそれらが類似の名前を持っているので、ちょうどハンマーで釘を打ち、どんな欠点も期待しないように。

それらを使用する際に考慮すべきいくつかのこと:

  • 彼らは完全にそれらの間と親プロジェクトの間で分離されています。 サブモジュールで行われたコミット の親プロジェクト、それを更新だけのものには詳細な履歴はありません。

  • あなたがサブモジュールにコミット作るとき、あなたはあなたのために別のレポで、それをプッシュする必要があります。そうしないと、スーパープロジェクトでサブモジュールを更新すると、プッシュされていないコミットへの参照になります。そして、これはさらに多くの問題と混乱につながります。

これらは、私は非常に頻繁に発見し、人々がそれらに文句を言うが、私はそれが私たちのプロジェクトに合っている場合だけで、私たちが知っておく必要がある物事は私たちが決めることができ、短所として、これらを考慮していない状況の例であり、か否か。

は、より多くのモジュールのように、埋め込まれた別のものを持っているプロジェクトでそれを使用していました。 これらはどちらも個別に開発されており、時折、モジュールを新しいバージョンに更新するか、または互換性の理由からモジュールを新しいバージョンに更新します。私たちは誰がモジュール上で作業しているのか、何を作ったのかを知る必要はなく、いつ新しいバージョンをリリースしたのかを知りたいだけです。

は多分より多くの経験を持つ誰かがそれを共有する、我々は確かにそれを必要とします。

+0

を共有していただきありがとうございます。はい、私たちはサブモジュールの内部をプッシュするために親モジュールに移動する前にまずプッシュする必要があります...私が見つけたもう一つの事は、IDE(webstorm)が認識できず、ブランチに自動的に切り替えることです。サブモジュールのレベル、これは非常に誤解を招く可能性があります... – Hammer

+0

問題はありません。 IDEについては、設定/バージョン管理に行くと、repos、または親だけのパスが表示されますか?私のPhpStormは、両方のことを認識しているようです。 –

+0

しかし、ターミナルを開いてサブモジュールに入って別のブランチにgit checkoutした後、再びIDEに戻り、そのサブモジュールフォルダに移動します。右下に新しいブランチチェックアウトが表示されますか?私のケースでは、私はVC設定を構成した後、すべてを見ることができますが、手動切り替えが必要です – Hammer

関連する問題