1

多くの場合、新しいプロジェクトを開始するときは、コードベースをどのように構築するかという点で最善と思われるものから始めます。1 つのことをうまく実行し、コードベースの他の部分から分離され、他の (類似の) プロジェクトで自分自身が再利用したり、他の人が利用できるようにオープン ソース化したりする可能性のある多数の小さなモジュールのアイデアが気に入っています。

しかし、私が実際に何かを本番環境に持ち込もうとしている危機的な週になると、これらのさまざまなモジュールをすべて管理する複雑さがオーバーヘッドを大きくしすぎることが何度かありました (適切なドキュメントとデプロイ方法にもかかわらず)。当時、私は単純に方針を変更し、すべてのモジュールを 1 つのリポジトリにバンドルして、すべてを 1 つのコードベースとして管理していました。つまり、さまざまなブランチを通じてすべてを一緒に追跡し、ステージング環境やテスト環境にデプロイすることができます。

これらのさまざまなアプローチの長所と短所は何ですか。また、いずれかの方法で作業を管理するにはどうすればよいですか?

1 つのモノリシック コードベースの利点:

  • 展開が簡単
  • ロールバックしやすい
  • すべての変更をまとめて簡単に分岐/管理
  • 文書化および管理する潜在的に複雑な依存関係がない (または少ない)

モジュール依存関係の利点:

  • 再利用性
  • クリーンなアーキテクチャ (1 つのモジュールが 1 つのことをうまく行う)
4

2 に答える 2

2

私はあなたほど反対を見ていません。.NETエクスペリエンスを例にとると、コードの一部が明確に定義された責任に向けられていることを確認できます。コードベースを名前空間に構造化して、名前空間の接点が明確に定義され、同じ名前空間内のクラスであることを確認できます。本当に一緒に属しています。

ただし、これはすべて、単一のデプロイメントユニット、単一のプロジェクト、ブランチ内で発生する可能性があります。これに固執すると、実行するプロジェクトのコンテキストで再利用可能になる可能性のあるコードの単位が結晶化し、独自の展開アーティファクトであるソース管理ブランチを備えた新しいコードの単位を導入することを決定できるポイントになります。 、など。

于 2009-02-01T13:14:11.600 に答える