MVPは*すべての*GWTアプリケーションのベストプラクティスと見なされますか?
- 小さな社内Webアプリケーションについてはどうでしょうか。
- そのようなアプリケーションや他のアプリケーションに 単体テストを使用しないのは間違いですか?
- 単体テストが行われないアプリケーションの場合、MVPを使用したい他の理由はありますか?
MVPは、複数の開発者が同時に作業できるように開発を切り離します
まあそれは主観的です、デザインのものは常にトレードオフです。
小さなアプリの範囲/サイズ/将来についても議論の余地がありますが、私たちは通常、複雑さを軽減したり、キヤノンでハエを殺したりしないように、小さなアプリのことをシンプルに保ちます
ただし、チームがすでにMVPに慣れている場合は、MVPを使用することを強くお勧めします。これは、サイズが大きくなるにつれて、パターンがスパゲッティコードを回避するのに役立つためです。
MVPを使用しないことは、必ずしもテストできないことを意味するわけではありません。自動テストツールを使用してUIからいつでもアプリをテストできますが、それらは作成が難しく、壊れやすくなっています。アプリケーションが複雑な場合、またはアプリケーションを保守する必要がある場合は、ユニットをテスト可能にすることで長期的に見合うことができます。
MVPパラダイムにはメリットがありますが、私自身は、モデルとGWT固有のビュークラスの間に追加のプレゼンテーション層を持たないことを好みます。すべてのビジネスルールをビュークラス(UIBinderのもの)から厳密に除外し、代わりにモデルクラスに配置するようにします。
同様に、私はすべてのGWT.create(..)
ものをモデルから除外します。これにより、サーバー側のモデルクラスに手間をかけずにアクセスできます。次に、RPC呼び出しのJUnitテストでSyncProxyを頻繁に使用します。
最終的に、リッチWebクライアントを作成する場合、特にさまざまなプラットフォーム(ブラウザーなど)用に生成されたコードによってレンダリングされる場合は特に、ビューの自動テストにあまり依存することはできません。プリンの証拠は、Internet Explorer、Firefox、Chromeがそれを作っていることにあります。