リーダブルコード〜コードの再構成〜

無関係の下位問題を抽出する

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

一度に1つのことを

  • コードは1つずつタスクを行うようにしなければならない
  • 手順
    • コード行なっているタスクを列挙
    • タスクをできるだけ異なる関数に分割する