2016-09-14 3 views
-6

の起源をバイパスする代わりに、(変数= nullで!)場合は使用しての正しい修正は何である{今変数に依存したコード行う}(変数= nullの!)場合は、問題

以下のことは事実です。このようなアプローチは、論理が書かれたときに、その論理が意図されていたものがすべて抑制され、問題の原因がカーペットの下で掃除されているときに、非ヌルオブジェクトが提供されると仮定したビジネスロジックを甘くしている。

これに対して何らかの議論がありますか?原因をバイパスして迅速な修正を提供しますか?どのような正しい設計は、どこでもトラフのコードif(variable!= null)は振りかざされていませんか?または、if (variable != null)をコード内のどこでプログラミングするのがよいでしょうか?

など/他/キャッチした場合、私はデザインパターンかのようなコードを使用していないだけで、これを扱うの建築方法を探しています

+1

変数が「null」の場合は問題があると私は同意しません。実際には変数が 'null 'になることがあります。堅牢なアプリケーションを構築したい場合は、それが' null'であるかどうかをチェックする必要があるということを考えるべきです。 – mok

+0

あなたが完全にケースをキャッチしたいのであれば、単に 'else'ブロックを追加してそこに(回避された)例外を処理するのではないでしょうか? –

+1

この質問はあまりにも広範かつ一般的であり、それに直接答えるのは不可能です。 – Pedro

答えて

1

あなたvariableがある状況に対応するために業務上の理由が本当にあるとすればnullの場合、開発者はブロックelseを提供する必要があります。

文章に関しては、実際には例外を投げるのにパフォーマンスコストがあるので、できるだけ例外をスローすることは避けてください。 You can read more about it on MSDN

+0

例外をスローすることではなく、null値が手作業ではなく構造的にパラメーターとして渡される場所を見つけて、防止します。 – Arjang

+1

@Arjang、実用的にアーキテクチャから実装を正常に分離する方法についてはわかりません。そこに何らかの "ビジネスロジック"がある場合、それに忠実なコードの義務とビジネス要件に関する前提条件を検証するためのテストの義務があります。私たちが心配している限り、コードは完全にバグであったり、意図とはまったく異なる何かをしている可能性があります。だからこそテストとテスターが釣り合っているのです。 –

関連する問題