理解しやすいコード
- コードを書く上で最も重要なコンセプト:コードは理解しやすくなければいけない
- 読みやすさの基本定理:コードは他の人が最短時間で理解できるように書かなければいけない
名前に情報を詰め込む
明解な単語を選ぶ
Webページを取得するなら、getPage()よりfetchPage()やdownloadPage()の方が明確
tmpやretvalのような汎用的な単語を避ける
- tmp という名前は、生存期間が短くて、一時的な保管が最も大切な変数にだけ使う
- ループイテレータ(i,j,k等)は使ってもよいが、複数ある場合はそれぞれに意味のある名前をつけるべき
- tmp・it・retval のような汎用的な名前を使うときは、それ相応の理由を用意しよう
抽象的な名前よりも具体的な名前を使う
DISALLOW_EVIL_CONSTRUCTORS → EVILがどういう意味か分からない → DISALLOW_COPY_AND_ASSIGN
–run_locally → –extra_logging と –use_ local_database の2つに分割
直交する概念は無理に 1 つにまとめようとせずに、別々に使えるようにするといい。
名前に情報を追加する
- 変数名に値の単位を入れる:delay_secs, size_mb, max_kbps, gegrees_cw
- 重要な属性を追加する:plaintext_password, unescaped_comment, html_utf8, data_urlenc
名前の長さを決める
- スコープが小さければ短い名前でもいい
- 長い名前を入力するのは問題じゃない:大抵のエディタには単語補完機能が付いている
- 頭文字と省略形:新しいチームメイトはその名前の意味を理解できるだろうか? 理解できるなら問題ない。
- 不要な単語を投げ捨てる:convertToString() → toString()
名前のフォーマットで情報を伝える
GoogleのC++コーディング規約の例
- 定数は CONSTANT_NAME ではなく kConstantName:MACRO_ NAME のような #define マクロと簡単に区別できる
- クラスのメンバ変数は、offset_ のように最後の文字がアンダースコア