3

ASP.NET MVC +FluentNHibernateという独自のプロジェクトを開始します。できるだけテストファーストのアプローチを使いたいです。それで、私は正確にどこから始めますか?データベーススキーマ?ドメインモデル?ドメインモデルクラスをデータベースにマッピングしますか?

4

4 に答える 4

6

テストの作成経験がほとんどない場合は、ドメインモデル(またはUIのすぐ下のより高いレベル)から開始するのが最も簡単です。TDDを使用してドメインモデルの設計を推進すると、データベーススキーマがどのようなものである必要があるかがわかります。データベーススキーマの移行を処理すると開発にいくらかのオーバーヘッドが追加されるため、システムへのデータベースの導入を延期することをお勧めします。また、ドメインモデルがデータベース層からより適切に分離されるため、より優れた設計につながります。

テストの記述とTDDに熟練している場合は、エンドツーエンドのテスト(この場合はWeb UIに対して記述されます)から始めて、すべてのアーキテクチャー部分に触れる機能の薄いスライスを作成することが有益な場合があります。システムの( GOOSで推奨されているように)。つまり、ウォーキングスケルトンを作成します。このアプローチの利点は、(1)統合の問題に最初から取り組み、解決できること、(2)エンドツーエンドのテストを使用して設計を推進する場合、実装を回避できることです。余分な部品、および(3)エンドツーエンドのテストを作成するのが難しいため、アーキテクチャを改善し、監視フックを追加する必要があります。これは、本番環境でのシステムの監視にも役立つ場合があります。(焦点を絞った単体テストは、クラスレベルで設計圧力を提供し、さらに高速に実行され、したがってより高速なフィードバックを提供するため、引き続き必要です。)

この後者のアプローチについては、DesignforIntegrabilityで詳しく説明しました。

于 2010-04-01T22:18:39.823 に答える
2

要件の収集。

于 2010-04-01T22:18:50.923 に答える
2

アプリケーションのモック/プロトタイプ (Balsamiq Mocks など) から始めて、ビューを書き、コントローラーをモックし、コントローラーのロジックを書き、途中で DAO/リポジトリをモックします。DAO/リポジトリの作成を開始する頃には、必要なドメイン オブジェクトについてよく理解できているはずです。それらをノックアウトし、Fluent Nhibernate を使用してデータベースを構築します。

少なくとも、私がやろうとしているのは彼らのやり方です。

于 2010-04-01T22:22:59.440 に答える
1

以下を組み合わせたベストプラクティスを使用するS#arpアーキテクチャプロジェクトをお勧めします。

  • NHibernate
  • FluentNhibernate
  • 単体テスト用のSqliteデータベースを使用したモデルfirtsアプローチを使用したTDD/DDD
  • 嘲笑
  • リポジトリパターン

S#arparchをインストールすることもできます。VisualStudioIDEのテンプレート。

于 2010-04-02T18:11:16.400 に答える