【勉強4】リーダブルコード 前半

勉強で「リーダブルコード」を読んだので、個人的に要点をまとめています。表現が正確でない点もあるかと思いますが、あくまで個人的な整理ですのでその点ご理解いただければ幸いです。

第1部 表面上の改善

  • 2章 名前に情報を詰めこむ
  • 3章 誤解されない名前
  • 4章 美しさ
  • 5章 コメントすべきことを知る
  • 6章 コメントは正確で簡潔に

2章 名前に情報を詰め込む

命名の情報の上手な詰め込み方のコツは以下。

  • 明確な単語を使う
    • GetPage→FetchPage(ローカルキャッシュやDBでなくインターネットからとるニュアンスが出る。)
    • sendの場合以下のシソーラスがある
      • deliver, dispatch, announce, distribute, route
  • tmpやretvalを避ける。
    • 生存期間がわずかで役割が全くない時はOK
    • ループイテレータ(i, j, k)もmembers_iとかにすると分かりやすい
  •  抽象的より具体的な名前を使う
    • ServerCanStart()→CanListenOnPort() (TCP/IPポートをサーバがリッスンできることを明示) 
    • --run-locally→--extra_logging(実際はログ出力をするという意味を与える。)
  •  名前に情報を追加する
    • start→start_ms(単位の追加)
    • Url→untrustedUrl(安全かどうかの追加)
  •  名前の長さ
    • 前提として長すぎるのはNG
    • スコープが小さい時は「m」とかでもすぐ分かるからOK、グローバル変数とかは長い名前にする。
    • 省略形は一般的(evaluation→eval)なもの以外はNG
  • 名前のフォーマットで情報を伝える:見やすくする
    • Google
      • クラス名はキャメルケース、変数名は小文字のアンダースコア、などフォーマットを変える。 
    • JavaScript
      • コンストラクタは大文字スタート(DataPicker())、関数は小文字スタート(pageHeight())にする
      • jQueryオブジェクトの頭に$をつける
    • HTML・CSS
      • idはアンダースコアで区切り(middel_column)、classはハイフンで区切る(main-content)

 

3章 誤解されない名前

追記中...