答えは簡単です:リファクタリング。
のは、例(擬似コード)を見てみましょう:
if (a) {
if (b) {
if (c) {
// do something
}
}
}
を置き換えることができ:今
if (a && b && c) {
// do something
}
、a
、b
とc
はハードコードになり、複雑な述語であると言いますたとえば、次のようになります。
if (visitorIsInActiveTestCell(visitor) &&
!specialOptOutConditionsApply(request, visitor) &&
whatEverWeWantToCheckHere(bla, blabla)) {
// do something
}
def shouldDoSomething(request, visitor, bla, blabla) {
return visitorIsInActiveTestCell(visitor) &&
!specialOptOutConditionsApply(request, visitor) &&
whatEverWeWantToCheckHere(bla, blabla)
}
、今、私たちif
条件がネストして読みやすく、理解しやすくなりされていません:
if (shouldDoSomething(request, visitor, bla, blabla)) {
// do something
}
時にはそれがこのようなを抽出することは簡単ではありません我々としても、新たな方法を作成することをリファクタリングすることができますロジックとリファクタリングを行うことができますが、それについて考えるには時間を要するかもしれませんが、まだ不可能だった例はまだありません。
switch文とif文の組み合わせを使う必要があると思います。あなたは、switchステートメントを持っているより小さなヘルパー関数にswitchステートメントを壊すことができます。 –
@ whs.bsmith私は、switch文がネストされた 'if'を簡略化した1つの例(プログラミングのほぼ20年)を覚えていません。しかしおそらく私はちょうど幸運を得た;) – alfasin
@alfasin reduxのセレクターを見てください。 –