分岐の怖さ
- 人間の頭では3階層程度が限界
- 私は2階層が限界
- (そもそもの話)ネストが深いプログラムは読みにくい(多くの前提を読み手に課す)
分岐は大切!
- 分岐のないプログラムはほぼ存在しない
- プログラマの腕の見せ所は分岐を(見かけ上)いかに減らすかと言っても過言ではない
分岐の減らし方:基本的方針
- 関数1つの中での分岐を1~2階層にとどめる
- 関数の組み合わせで多数のパターンを実現する
重要なメリットは減らした分岐それぞれでテストできること!
分岐の減らし方:具体例
- 状況を限定する
- フラグは忌避
- 早期リターン(疑似分岐減少)
- 不要なチェックはしない
- 関数化・メソッド化・
←効果的に使うのは難しいが威力絶大
関数化アンチパターン
- 似ているが異なる処理の共通化
- 引数でフラグを渡している
関数の中が巨大なswitchになっているケースが該当
別のメソッドにした方がいい
関数化の目的
- 処理の共通化・・・だけではない!
- むしろ前提条件を固定した上で処理を分けるのが真骨頂
関数化のコツ
- 1つことを上手にやる
最後に
- ・・・語り切れません。レビュー依頼待ってます。