私は、進化し続けるビジネスロジックでいっぱいで、1日おきに変更する必要のある多くのコードに取り組んでいます。変更についていくのに確かに役立った2つのヒントは、他のすべてのステートメントを避け、できるだけ早く戻る/終了することです。深い入れ子にならないでください->サブルーチン/関数を作成してください。
他のすべてのステートメントを否定されたifステートメントに置き換えると、コードが上から下に読みやすくなります(条件とコードブロックの近接性)。
# business logic block
if ( $condition ) {
# do something
# code code code
} else {
# code code code
return;
}
# refactored:
if ( ! $contition ) {
# code code code
return;
}
if ( $condition ) {
# code code code
}
第二に、できるだけ早く戻る/終了します。もちろん私の意見ですが、サブルーチンの結果をすでに決定した後、特にコードを上から下まで読みたい場合は、追加の条件/テストを実行する意味がわかりません。すべてのあいまいさを取り除くと、物事が簡単になります。
結論として、私は特にBLの長いリストでelseを使用することを避けたいと思います。結果がわかったらすぐに戻ってください。ネストレベルが2を超える場合は、サブルーチン/関数を作成します。