5

ここで再び岐路に立っています。

少なくとも今後3年間は、アプリケーションを設計するためのシンプルで実績のある方法を実装してみたいと思います。最近はウェブサイトを作る「方法」が圧倒的に多いので、プロジェクトを始めるたびに初めてのように感じます。

購入したこのパッケージから取得したこのサンプルコードは、Design Pattern Framework 4 C#と呼ばれ​​ています。彼らが持っている複数のプロジェクトの中には、DesignPatternsinActionと呼ばれるものがあります。ここからダウンロードできますhttps://skydrive.live.com/redir?resid=B853B0DB724C30E5!16735&authkey=!AOeHSAWa_P4vzzU

私の質問ですが、その解決策を見た後、この例について、何が良いか、悪いか、何を保持するか、何を削除するか、何が不要かなどを教えてください。

彼らが複数のクライアントと複数のDAOを表示しようとしていることを理解しています。しかし、全体として、このアーキテクチャは「テンプレート」として使用するアーキテクチャでしょうか。ありがとう。

4

3 に答える 3

4

システム アーキテクチャは、建物のアーキテクチャによく似ています。

  • 「正しい」方法は 1 つではありません
  • 誰もが「最高」について独自の意見を持っています
  • 「最適な」アーキテクチャは、コンテキストとニーズによって異なります
  • スタイルとメソッドは時代とともに変化します

アーキテクチャの選択には多くの要因があります。

  • 市場投入までの時間 - 何かを始めるのにどれくらいの時間がかかりますか?
  • 保守性 - それを保守するのはあなただけですか? オープンソース?
  • 拡張性 - クローズド システムかオープン システムか?
  • スケーラビリティ - シンプルなユーティリティか、エンタープライズ規模か?
  • プラットフォーム - Web またはネイティブ? デスクトップまたはモバイル?

とは言っても、今後 3 年間に予定されているすべてのプロジェクトに適合する包括的なフレームワークを 1 つ考え出すことができれば、私は驚かれることでしょう。MVC、WFC、TDD、DDD などは、その状況のニーズを満たす適切なシステムを構築するために使用できるツールと考えてください。

私の意見は次のとおりです。特定の状況に適合する限り、理解できる(必要に応じて他の人に教えることができる)概念を使用してください。

于 2012-08-23T15:34:06.203 に答える
2

私の質問は、その解決策を見てから、この例について、何が良いのか、何が悪いのか、何を残すのか、何を削除するのか、何が不要なのかなどです。

ざっと見てみると、次のように言えます。

  • ご質問の DDD タグに関しては、これは明らかにドメイン駆動型のアーキテクチャではありません。ビジネス オブジェクトは、いくつかの単純な検証ルールを除けば貧弱に見え、DDD アーキテクチャの基本的な構成要素 (集計、値オブジェクトなど) の多くは存在しません

  • 何か見落としがない限り、ほとんどのビジネス オペレーションは CRUD オペレーションであり、実際のエンタープライズ アプリケーションを代表するものではありません。

  • 基本的にアプリケーションのすべてのユースケースを処理するように見えるファット ActionService クラスを備えたファット サービス レイヤーがあります。良いニュースは、ユースケースにとらわれない方法で処理することです (私が知る限り、それが操作する Request オブジェクトと Response オブジェクトは配信メカニズムに依存しません)。クラスにはあまりにも多くの責任が含まれているため、太っていることはあまり望ましくありません(SRP)。

  • クライアント側でリポジトリを使用し、サーバー側で DAO を使用するのは奇妙に思えますが、そうではありません。

  • それが本当にテスト駆動型であるなら、1 つのサンプルだけではなく、すべての単体テストを含めてみませんか?

それとは別に、レイヤーは適切に設計されており、複数のプレゼンテーション レイヤーが示すように、あるフロントエンドを別のフロントエンドに、またはある永続ストアを別のフロントエンドに置き換えることは難しくありません。

于 2012-08-24T12:20:15.043 に答える
0
  1. いずれかを選択してください。
  2. やってみよう。
  3. 自分に合わない場合は、リファクタリング/変更します。

最も重要なのは、リファクタリング可能なパターンを使用していることを確認することです。TDDを使用していて、依存関係や偽物などを挿入できる場合は、これによりリファクタリングプロセスが容易になります。与えられたパターンを使用するのに3年は長い時間です。友人は、6か月前のコードを見て、それがダメだと思ったら、十分に学んでいないかもしれないと言いました:)

于 2012-08-23T15:55:55.863 に答える