リーダブルコード〜コードの再構成〜
無関係の下位問題を抽出する
- 関数やコードブロックを見て「このコードの高レベルの目標は何か?」と自問する
- コードの各行に対して「高レベルの目標に直接的に効果があるのか?あるいは、無関係の下位問題を解決しているのか?」と自問する
- 無関係の下位問題を解決しているコードが相当量あれば抽出して別の関数にする
例
- 高レベルの目標:与えられた地点から最も近い場所を見つける」
- 「2つの地点(緯度経度)の距離を算出する
- 関数に置き換える
汎用コードをたくさんつくる
- 無関係の下位問題はutilディレクトリを用意しよう
一度に1つのことを
- コードは1つずつタスクを行うようにしなければならない
- 手順
- コード行なっているタスクを列挙
- タスクをできるだけ異なる関数に分割する