私はいくつかのことをするメソッド 'ABC'を持っています。 ABCメソッドは、別のメソッドXYZから呼び出されます。入力値のデータ検証はどこで行われるべきですか?データ検証はどこで行われますか?
ABCに電話する前にXYZで検証する必要がありますか?それが悪いデータメソッドならば、ABCは呼び出されません。
または、ABCで検証する必要がありますか?
または、両方の場所で検証しますか?
私はいくつかのことをするメソッド 'ABC'を持っています。 ABCメソッドは、別のメソッドXYZから呼び出されます。入力値のデータ検証はどこで行われるべきですか?データ検証はどこで行われますか?
ABCに電話する前にXYZで検証する必要がありますか?それが悪いデータメソッドならば、ABCは呼び出されません。
または、ABCで検証する必要がありますか?
または、両方の場所で検証しますか?
です。
ABCがこれまでにXYZによって呼び出されたことがある場合は、XYZによって検証できます。
ABCの視認性がXYZ以外の場合(たとえば、パブリックメソッドまたは内部のもの)、ABCで検証する必要があります。
重要な機能(ABC = AtomicBombControl)の場合は、できる限りどこでも検証します。
If it's bad data method ABC won't even be called.
私はあなたの質問に答えを持っていると思う:)
私は検討事項の数を見て:それはデータが正しい
どのくらい重要ですが。
どこが間違っている可能性がありますか。
ここで最も効率的で効果的な場所を確認できます。
どこで解決するのが最適です。
おそらく、あなたの悪いデータはユーザーインターフェイスから出てくる可能性があります。そして、それが修正される可能性があります。
参照制約と固有制約は、データベースで最も効果的に処理されます。データベースを変更するコードはこれらを捕捉し、有用な例外をユーザーインターフェイスに返す必要があります。
正確性が非常に重要で、コード内のバグがバックエンドに不良データを生成する可能性がある場合、複数回チェックすることはオーバーヘッドに値する。私は、財務データやシステム全体が誤動作する可能性のあるものについて、複数のチェックを行います。
高速障害は良好です。 不良データについては、早急に報告する必要があります。したがって、XYZでデータが不良であることがわかっている場合は、XYZに例外をスローします。データがすでに悪い場合、ABCメソッドは意味がありません。