#諸言
学習履歴全体のリンク
https://qiita.com/shigural/private/444b991293e5ab1b40af
#本文
##リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック
ここのサイトがよくまとめている
https://myenigma.hatenablog.com/entry/20131111/1384175078
####1.理解しやすいコード
具体的な名前をつけよう
###表面上の改善
####2.名前に情報を詰め込む
変数にはsやmsなどの単位をつけよう
すべて大文字で定数、変数名の最後に_をつけたらメンバ変数を示そう
####3.誤解されない名前
曖昧な言葉「filter」よりselect/excludeを使う
範囲を表すならfist-last、開始から終わりはbegin-end
bool型は肯定文で表現する
read_passwordよりneed_passwordなどとする。isやhasも積極的に利用するべき
getは低コストな関数にだけつける
size関数は軽くしておき、重たい処理はcountsizeなどと別名にしておく
####4.美しさ
引数が複数ある時、スペースで見やすくすると良い
//見にくい
test("a","","test");
test("b","TestHogeHoge","offset");
//見やすい
test("a","" ,"test" );
test("b","TestHogeHoge","offset");
変数名は重要順なり、アルファベット順なり規則を持って並べる
####5.コメントすべきことを知る
コードの欠陥についてコメントすると良い
TODO:後ですること
FIXME:既知の不具合
HACK:きれいでない
XXX:危険な不具合
定数には積極的にコメントしよう
####6.コメントは正確で簡潔に
代名詞は避ける
誤解しないように書く
インラインコメントを利用する。特にbool型には利用すると良い
Connect(/*timeout_ms=*/ 0, /*use_excryptiona=*/ false);
###ループとロジックの単純化
####7.制御フローを読みやすくする
条件式は
「調査対象」(比較演算子)「比較対象、あまり変化しないもの」
という並びにするとわかりやすい
ifの中身は否定より肯定を使う
目立つ条件や単純な条件を先に書く
do-while文を使わない
早くreturnする。continue文を積極的に使う
####8.巨大な式を分割する
式が複雑なら一時変数としてようやく変数を作ると良い
式が長いなら、否定で単純になるかを考える
####9.変数と読みやすさ
変数はできるだけ書き込みを1回にする