私は同僚に、深いレベルの制御フローがコードの可読性に有害であると主張しました。
関連するスタックオーバーフローの質問/software/52685/if-you-need-more-than-3-levels-of-indentation-youre-screwedからの例:
for(int i=0; i<10; ++i){
Object val = repeat(i, someVar);
if(val.value > 3){
switch(val.item){
case DOG:
if(mProcess){
outputToUser(val);
doMoreThings(val, mMoreThingDoer);
if(mRepurpose){
addExample(val);
}
// and so on, and so on...
ほとんどの場合と同様に、このトピックに関する意見を見つけるのは簡単です。
しかし、誰かがそれ以上に貢献できるかどうか疑問に思っています。
たとえば、問題に関連する実際の調査が行われたことがありますか?
それとも、「Xのほうが好き」を超えた他の議論をすることはできますか?
3
インデントのレベル数を減らす方法はたくさんあります。早期復帰はその一つです。
—
ロバートハーベイ
「権威による証明」が容認できる場合は、マイクロソフトのコードコンプリート(第2版)の関連資料を使用できます。IIRCは、Sec。19.4(その点を超えると、理解の明確さは失われます)。
—
hardmath 2013
スコープのすべてのレベルで、コードの機能を正しく理解するために頭に入れておく必要のある追加事項が追加されます。人間の作業記憶はそれほど大きくありません。また、「複数のこと」を行うコードの単体テストの複雑さも考慮してください。