basyura's blog

あしたになったらほんきだす。

困るソースってだいたいこんな感じじゃない?

メソッド開始
 |
 | DB から A を取得 
 | A を編集
 |
 | DB から B を取得
 | B を編集
 |
 | DB から C を取得
 | C を編集
 |
 | A と B と C を使って編集
 |
終了 

それぞれ何行も書いてある場合は1メソッドがドンドン膨れあがってしまう。よって、上から読んで下に辿り付くまでに最初に何をしいたのかを忘れてしまう。思考が必要な範囲が広くなる。

メソッド開始
 |
 |-- メソッド A 呼び出し
 |     A DB から A を取得
 |     A を編集して返却
 |
 |-- メソッド B 呼び出し
 |     DB から B を取得
 |     B を編集して返却
 |
 |-- メソッド C 呼び出し
 |     DB から C を取得
 |     C を編集して返却
 |
 | A と B と C を使って編集
 |
終了 

それぞれメソッドに分けて呼び出すようにすれば、「A と B と C を使って編集」する部分だけを集中して見ることができる。思考が必要な範囲が狭くて済む。編集処理自体をメソッドに切り出せば 4 行で済む(もちろんケースによる)。それぞれのメソッドもそれぞれの部分だけを見ればいい。
必要に応じて処理を分割・整理して組み立てるって部分に欠けてる事が多い。なので拡張性に乏しくなり、メンテの際の影響範囲にすごく悩まされる。どこからどこまで見る必要があって、どこまで範囲が及ぶのか。