2010-11-27 7 views
1

私はいくつかのことをするメソッド 'ABC'を持っています。 ABCメソッドは、別のメソッドXYZから呼び出されます。入力値のデータ検証はどこで行われるべきですか?データ検証はどこで行われますか?

ABCに電話する前にXYZで検証する必要がありますか?それが悪いデータメソッドならば、ABCは呼び出されません。

または、ABCで検証する必要がありますか?

または、両方の場所で検証しますか?

答えて

3

です。

ABCがこれまでにXYZによって呼び出されたことがある場合は、XYZによって検証できます。

ABCの視認性がXYZ以外の場合(たとえば、パブリックメソッドまたは内部のもの)、ABCで検証する必要があります。

重要な機能(ABC = AtomicBombControl)の場合は、できる限りどこでも検証します。

0
If it's bad data method ABC won't even be called. 

私はあなたの質問に答えを持っていると思う:)

0

私は検討事項の数を見て:それはデータが正しい

どのくらい重要ですが。

どこが間違っている可能性がありますか。

ここで最も効率的で効果的な場所を確認できます。

どこで解決するのが最適です。

おそらく、あなたの悪いデータはユーザーインターフェイスから出てくる可能性があります。そして、それが修正される可能性があります。

参照制約と固有制約は、データベースで最も効果的に処理されます。データベースを変更するコードはこれらを捕捉し、有用な例外をユーザーインターフェイスに返す必要があります。

正確性が非常に重要で、コード内のバグがバックエンドに不良データを生成する可能性がある場合、複数回チェックすることはオーバーヘッドに値する。私は、財務データやシステム全体が誤動作する可能性のあるものについて、複数のチェックを行います。

0

高速障害は良好です。 不良データについては、早急に報告する必要があります。したがって、XYZでデータが不良であることがわかっている場合は、XYZに例外をスローします。データがすでに悪い場合、ABCメソッドは意味がありません。

関連する問題