2011-09-07 15 views
7

私は最近、同僚と弊社のWebアプリケーション用の規律のあるn層構造に向けてのプッシュを議論していました。それは私には別のことを考えることができなかったと私は思いました。Webアプリケーション用のNTierアーキテクチャの代替品

Webアプリケーションをレイヤーに分離する必要があるのはいつですか?

答えて

5

Udi Dahan氏が議論したように、従来のN階層アーキテクチャの代わりにCommand-Query Responsibility Segregation(CQRS)アーキテクチャがあります。あなたは本当に個人的にhere

を議論したように、それを使用する際に考えなければならないすべての建築の決定と同様に

、私は本当に以上の問題を複雑にし、物事がはるかに困難になることが私のソフトウェアの旅に"over architecture"の多くを見る傾向があります維持して明らかに多くの費用がかかります。あなたは本当に建築を選ぶのではなく、まずビジネス問題を多く考える必要があります。

最良の結果と簡単なリファクタリングを可能な限り簡単に行います。

5

Webアプリケーションをレイヤーに分離する必要がありますか?

システムのさまざまな論理部分を分離して、強く結合されないようにする必要があります。あなたがそれらを分けるものに本当に重要ではありません。 レイヤーなどと呼ぶことができます。

実際には、これらの層の2つの意味があるかもしれません:

  1. 物理的な境界:クライアントブラウザ、Webサーバ、Webサービスサーバー、バックエンドのデータベース、...
  2. 論理境界:GUI、サービス層、 DAL、...

Onion Architectureをご覧ください。しかし、タマネギにはまだ層があります:-)

+5

標準的な規則では、物理的境界には**層**を、論理境界には**層**を使用しています。 –

3

Microsoft Application Architecture Guide, 2nd Editionを読むことを強くお勧めします。

次に、2つ以上の単純なWebページ以上のすべてのサイトでの分離の重要性を認識します。

これは、堅牢な&スケーラブルアプリケーションですべてのレイヤの役割と責任、およびそれらがすべて一緒に遊ぶ方法を説明する徹底したガイドです。

これはすべて読む必要はありませんが、最初はChapter 5: Layered Application Guidelinesをご覧ください。

2

レイヤードアーキテクチャには別のパターンがあります。

しかし、レイヤードアーキテクチャが解決しようとしているのは、アンチパターンです。すなわち、 "泥の大きな球" :)

+0

良い点@Shiraz Bhaiji – vikingben