鬼は外
プログラミングの品質として、ソースコードは見やすい方が良い。見やすくするためには、インデントが必要だ。適切なインデントはブロック単位のコードを把握しやすくする。
しかし、ブロックのネストが深くなると、ソースは横方向へ広がってゆく。横方向への広がりはソースの醜さを意味する。それだけ処理が入れ子の状態になっていて複雑な制御をしていることになるからだ。
だからブロックのネストは浅くするようにプログラミングをすることが望ましい。まあ能書きはおいといて、メモしておきたいのはこんなこと。
まずはよくない例:
if ( 良い場合 ) { if ( 良い場合 ) { if (良い場合) { 目的の処理 } } }
ネストがすっげぇ深くなる。続いてネストを浅くした書き方。
if (悪い場合) { break もしくは continue もしくは return } if (悪い場合) { break もしくは continue もしくは return } if (悪い場合) { break もしくは continue もしくは return } 目的の処理
どちらが見やすいだろうか?今の例では本格的な処理を記述していないので差は感じ難いかもだけど、目的の処理が長くなればなるほど前者のやり方では処理をおっかけるのが面倒にならないだろうか。
この条件のときに目的の処理を行いたい、というよりも、目的の処理に合わないものを排除してから処理を記述する、と心がける方がネストは必然的に浅くなる。(もちろんこれは原則であって、当然のごとく例外があるのだけど)
あんまり大したことではありませんが、1つのテクニックとしてメモしときます。