2009-08-27 8 views
0

ほとんどのコード(およびほとんどのバグ)は、次のような例外処理によって発生します。 aが選択されている場合は入力フィールド1,5,8,9が必要です else if b入力フィールド3,4,8が必要です もしaがチェックされ、bがチェックされていればフィールド1,3,8が必要ですコード内またはデータ内に例外を配置する

(上記はバグのコードの例です。最初にaがチェックされると最初に実行されてから実行され、次に3番目の条件をバイパスします)。

上記のような/ switch文があると良いでしょうか?または、条件を渡す(選択した*はチェックされています)、戻り値は必要なフィールドを示します(これは簡単な例です)。 (データベースの更新)、コードの簡略化 短所:テーブルとアソシエーション。ルールを返すロジックが混乱し、ルール処理のためにデータベースに行く際にパフォーマンスが低下する可能性があります。

考えていますか?誰もがデータベースアプローチの経験がありますか?

+1

既存の検証フレームワークを長い目で見てみましょう:http://www.google.com/search?q=validation+framework – ChssPly76

答えて

0

特殊な「エンジン」に対する外部化のルールは、メンテナンスを容易にするための合理的なアプローチである可能性があります。パワフルなルールエンジンの市場がかなりあります。

これは私が共通の結果として見るものを反映しています。単純なデータ構造では簡単に取り込めるいくつかの簡単なルールから始めますが、現実の世界はぎこちないものです。特別なケースがたくさんあり、コード内の複雑さが必要以上に複雑になります。

これは外部化するのは悪いことではないと言うわけではありませんが、複雑さを軽減するために複雑さを軽減することは楽観的過ぎる可能性があります。ビジネスが複雑な場合、ルールを取り込む方法はありません。

これは、あなたがルールのライフサイクルをどのように管理するのかということには繋がります。彼らは生産中です。ビジネスはそれらを変更したいあなたがライブに行く前に、どのレベルのテストを受ける必要がありますか?ルールが非常に複雑であるため、私たちは慎重さが低くなります。私は、外部化されたロジックはある意味ではまだコードであり、QAを必要としていると考えています。

関連する問題