リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- オライリージャパン (2012年6月23日発売)
コードを書く人の必読書だと聞き、読んでみた。
エンジニアリングとは、大きな問題を小さな問題に分割して、それぞれの解決策を組み立てることに他ならない。
自分天才!と思える短いコードを書くより、少し長くても初見の読み手が早く理解できる読みやすいコード、理解しやすいコードを書くことが大事。
以下、印象に残った内容
コードを書く際の基本
・他の人が最短時間で理解できるように書く
名前に情報を詰め込む
・GetPageではなくFetchPage、StopではなくResumeやPauseなど、処理がより明確になる単語を使って名前を付ける
ヒント:シソーラス(類語辞典)を使って単語を調べる
・イテレータが複数あるときには、インデックスに明確な名前を付ける
E.g.: i,j,kではなく、club_i,members_i,users_i
・変数名に単位を入れる
E.g.: start_ms
・危険や注意を喚起する情報を変数名に追加する
E.g.:暗号化前のパスワードならplaintext_password
・スコープが小さければ、変数名は短くて良い、スコープが大きければ、名前に十分な情報を詰め込んで明確にする
誤解されない名前
・限界値を含める時はlimitではなくmin,maxを使う
・範囲を指定する時はfirst,lastを使う
・包含/排他的範囲にはbegin,endを使う(beginは含め、endは含めないが基本)
・ブール値の変数名は、頭にis,has,can,shouldなどをつけて分かりやすくする
美しさ
・同じような処理をしているコードは、シルエットも同じようにする
・コードの列を整列する
・ある場所でA,B,Cの順に並んでいれば、別の場所でもA,B,Cの順にする
コメントすべきことを知る
・自分の考え、質問されそうなこと、処理の全体像、定数の値にまつわる背景などはコメントに記す
TODO:あとで手をつける
FIXME:既知の不具合があるコード
HACK:あまりキレイじゃない解決策
XXX:危険!大きな問題がある
制御フローを読みやすくする
・If/else条件は、否定形よりも肯定形を使う。単純な条件を先に書く。関心を引く条件や目立つ条件を先に書く
・do/whileループを避ける
・早めに関数から返して、ネストを削除する
巨大な式を分割する
・式を表す変数、説明変数を使う。式を説明不要でも、式を変数に代入すると便利
E.g.: username=line.split(':')[0].strip()
・ド・モルガンの法則を使い、notを分配して、and/orを反転する
- 感想投稿日 : 2023年4月3日
- 読了日 : 2023年4月3日
- 本棚登録日 : 2023年3月26日
みんなの感想をみる