私は、アクティブなレコード、リポジトリ、データ転送オブジェクトを含むいくつかについて読み、手を出しました。どれが最高ですか?
5 に答える
「最良の」質問が最高の形式ではないことに同意しますが (非常に恣意的であるため)、まったく無関係というわけでもありません。
ここ SO で構築された、開発者が何が「ベスト」かを投票する世界で、なぜベストの質問がないのでしょうか? 「最良の質問」 迅速な議論と異なる意見。
最終的に、誰かが「データ アクセス パターン」を「ググる」と、このページに来て、大量の回答が表示されるはずですよね?
「最良」の質問は実際には有効ではありません。世界は組み合わせとバリエーションに満ちています。答えなければならない質問から始める必要があります。どのような問題を解決しようとしているのか。答えた後、その問題に最適なツールを検討します。
リポジトリは、テストが必要なときにリポジトリをモックに置き換えることができるため、おそらくテスト容易性の最良のパターンです。ActiveRecordは、モデルをデータベースに関連付けます(便利な場合もありますが、通常はテストがより困難です)。
それは本当にあなたの仕事に依存します。現在の問題に最も適したものを選択するには、少なくともすべてのデータベースアクセスパターンを知って理解する必要があります。
これは、考えさせられる良い質問です。
多くの場合、データベース アクセスは厳密なテストの対象ではありません。特に自動化されたテストではありません。データベースでのテストの量を確実に増やしたいと考えています。
Visual Studio 内から実行されている MbUnit テスト フレームワークを使用して、いくつかのテストを行っています。
私たちのアプリケーションでは、可能な限りストアド プロシージャを使用しています。私が作成したテストでは、テスト用のデータベースをセットアップし、ストアド プロシージャを呼び出して、結果を確認します。
関連するストアド プロシージャのコレクションとして、これらのストアド プロシージャのテストを含む C# ファイルがあります。(ただし、これまでのカバー率はおそらく約 1% です!)。
アクティブ レコードは魅力的なオプションです。なぜなら、Ruby は自動テストに重点を置いているからです。最初からやり直すのであれば、それがアクティブ レコードを使用するポイントになります。