2

適切な設計パターンやアジャイル方法論に従わずに、デスクトップ (winform) アプリケーションを開発しました。現在、C# (Winforms) で既存の ERP アプリケーションを書き直すタスクが与えられています。私はドメイン駆動設計、スクラム、極端なプログラミング、階層化アーキテクチャなどについて読んでいます。非常に混乱し、(時間制限があるため)すべての方法を試してから、どの方法を選択するかを決定するのは非常に困難です。全体像を理解し、どのパターンとアジャイル手法に従うべきかを理解することは、私にとって非常に困難です。私が知りたいことをより具体的にすると、次のようになります。

  1. ドメイン駆動設計に従いながら、機敏性を維持することは可能ですか?
  2. この特定のシナリオでは、エクストリーム プログラミングまたはスクラムを選択する必要があります
  3. MVP と MVVM はどこに適合しますか? どちらが私にとってより良い選択肢でしょうか?
4

2 に答える 2

6

特に開発者コミュニティでは、非常に主観的で議論の余地のあるトピックです。私は自分の考えを書き留めているだけです。あなたはそれから良さを引き出すかもしれません.

設計中に意識的にデザインパターンを適用する人はいません。良いデザインにたどり着くには、常に反復的な方法があります。オブジェクト指向の原則は堅実であるべき抽象化を巧みに選択する必要があります。インターフェイスの観点から考えてみてください。

レガシー コードについては、まずドメイン クラスから始めるべきだと思います。基本的に、実際のデータ モデルが存在する場所。リポジトリ/データベースと対話する場所。それらを 1 つずつリファクタリングを開始し、それらの周りに単体テストを作成します。ここでは、テスト駆動について強調していません。しかし、you need to have solid Unit Testsあなたは今それを書き直しているからです。ドメイン クラスの準備ができたら、標準パターンに従って UI を簡単にフックできます。

バックグラウンドワーカーを使用したマルチスレッドの概念とともに、通常の UI パターンのすべての要素を備えたこの単純な Winforms アプリケーションを見ることができます -

http://www.codeproject.com/Articles/88390/MVP-VM-Model-View-Presenter-ViewModel-with-Data-Bi

これは、コード サンプルの詳細な説明にも非常に役立ちます - Winforms に MVVM を使用する方法を示しています [上記のコード プロジェクト記事の親] -

http://aviadezra.blogspot.co.uk/2009/08/mvp-mvvm-winforms-data-binding.html

非常に主観的なトピックだと言ったので、ここでこれ以上詳しく説明することはできません。デザインを進めながら、 Martin Fowler の記事を検索することができます。お役に立てれば。

于 2012-06-11T22:32:08.060 に答える
2

あなたの質問はかなり一般的ですが...私はあなたが大きな旅の始まりにいることを理解しています。

あなたを助けるために、私はあなたに私の経験からいくつかのヒントを与えるでしょう...

一般に、MVVMは中規模から大規模の実世界のアプリケーション(WinFormの場合でも)に適しているため、ここから調査を開始できます。次に、少なくとも3層のアーキテクチャ(データビジネスプレゼンテーション)が必要になる場合があります。後で、サービスレイヤーも検討することもできます...

さて...あなたが今最もよく理解している何かに固執して、途中で適応してみてください!

「AngshumanAgarwal」が言ったように...すべてのステップでインターフェースを考えてみてください。これが成功の鍵です。

幸運を!

于 2012-06-11T22:29:52.520 に答える