1

私は、小さなサイトの集合体となる Web サイト全体を作成しています。当然それらはすべて相互に関連していますが、さまざまな人がさまざまな理由でさまざまなセクションにログインします。

私が避けようとしていることの 1 つは、モノリシック アーキテクチャです。1 つのチームが 1 つのプロジェクトに取り組み、1 つのチームが別のプロジェクトに取り組むことができるように、すべてをサブプロジェクトに分割するというアイデアが好きです。

私の質問: データベースに直接アクセスするのではなく、安らかな API を介してプロジェクト間通信を行っている人が増えていると聞いています。

例えば:

                app 4 
                  |
app1 ----->   central core <------app2
                  |
                app 3

そのため、アプリ 1 ~ 4 は API を介して中央コアと通信します。彼らは独自の特定のアプリケーション用に独自のモデルを持っていますが、中央のコアにはアプリケーションの大部分が含まれています。

私の質問: この設計を行うのは正しい実装ですか、それとも 1 つのモデル実装を含む従来のモノリシック プロジェクトに固執する必要がありますか?

優れたシステム アーキテクチャの例はどこで入手できますか?

ありがとう

4

1 に答える 1

1

機能を API に抽象化することが、メンテナンスのオーバーヘッドを削減するための正しい方法であることは間違いありません。llvm のようなプロジェクトが表示されるはずです。

アプリケーションを「コア」と「ドライバー」に分割することに伴う問題は、ソフトウェアのアップグレードがややこしくなることです。コアとドライバーの両方を一緒にアップグレードする必要があるためです。これは、ソフトウェアをライブラリとして出荷する際の最大の問題です。コアが古く、ドライバーが新しい場合は機能しません。

しかし、これはあなたにとって問題ではないと思います。

ソフトウェア設計に関する優れた本はたくさんあります。

于 2012-06-04T06:19:27.667 に答える