ネストを減らす

受託開発担当のRyuです。

保守しやすいコードを書くことは重要なことです。

void function() {
	for (...) {
		if (条件) {
			[処理1]
			if (条件) {
				[処理2]
				if (条件) {
					[処理3]
				}
			}
		}
	}
}

これはネストが多く読み辛いコードだといえるでしょう。
このコードに後から修正を加えるのは大変です。

具体的には、コードの煩雑さを表すサイクロマティック複雑度という指標があります。
これはコードの条件分岐の多さと複雑さを示すものです。
これを下げることが保守しやすいコードへの第一歩となります。
ネストを減らすことでこの複雑度は下がります。

例えば上記のコードは、こんな感じでネストを減らすことができます。

void function() {
	for (...) {
		if (!条件) continue;
		[処理1]
		if (!条件) continue;
		[処理2]
		if (!条件) continue;
		[処理3]
	}
}

いわゆるガード句と呼ばれる形で条件に合わない場合、以降の処理を評価しません。
関数やガード句などを上手く使い、ネストの少ない保守性の高いコードを書くことを心がけたいです。