「リーダブルコード」の要約・まとめ
「リーダブルコード」 ~より良いコードを書くためのシンプルで実践的なテクニック~
を読んだので、簡単に要点だけをまとめてみました。
最短最速で要点を抑えたい人には最適です。
全4章で構成されている
- 表面上の改善
- ループとロジックの単純化
- コードの再構成
- 選抜テーマ
とりあえず1章の要点をまとめます。今後2~4章を追記します。
表面上の改善
理解しやすいコードを書くためのコツが以下の6セクションに渡って説明されている。
セクション1 (優れたコード)
コードは他の人が最短で理解できるものが良い。
簡潔なものより、複数行に渡って書かれているものが良い場合もある。
全ては「読みやすさ」重視。
セクション2 (命名)
名前を見ただけで情報を読み取れることが大事。
- get,stop,sizeなどよりも、もっと具体的なwordを用いるべき。
- retVal,value,resultなどの意味のない単語は避けるべき。ただし、その単語の登場する行数(スコープ)が短ければOK。
- 単語補完機能を使ってみるべし。
- 省略形は共通認識のものだけ。stringをstrやButtonのbtnなどはOKだが、他の勝手な省略は避ける。
セクション3 (命名での誤解)
他の意味と間違われることはないか確認することが重要。
最善の名前とは誤解されない名前のこと。
- filterなどは誤解を招く。selectなのか、excludeなのか。
- 限界値を決めるときは、max,minを使用。
- bool値はis,has,shouldなどをつけて、true,falseをわかりやすくする。否定形はやめて肯定形にしないと、意味がややこしくなる。
セクション4 (コードの美しさ)
プログラマの仕事の多くはコードを読む時間。
美しいコードの方がいいに決まっている。
重要なのは「一貫性」と「意味のある整形」
- 変な改行を修正。(IDEのコード補完機能使うとうまくいかないことが多いけど、これは仕方ないのかな。)
- 縦の整列を意識する。
- コードをどんな順番で並べても良い時でも、意味のある順番に並べる。重要度、アルファベット順など。
- 宣言をブロックに分ける(コメントなどで役割を区切る)
- 長いコードのまとまりは段落分けする。(これも要約コメントで区切っていくと見やすい)
セクション5 (コメントを書く・書かない、コメント内容)
コメントの役割は、書き手の意図を読み手に伝えること。
コメントを書かないケース
- コードからすぐにわかることをコメントに書かない。
- ひどい名前を捕捉するためのコメントなら、名前自体を変えるべき。
コメントを書くケース
- 自分の考えをコメントする。
- コードの欠陥にコメントをつける。
- 定数にコメントをつける。定数の値を決めた時の頭の中を記録しておくと良い。
- ハマりそうな罠はコメントで告知。
- 読み手が驚きそうなところにはコメントを残す。
- ファイルやクラスには全体像へのコメントを残す。
セクション6 (コメントする際のTips)
少ない領域に多くの情報を詰める。
- 代名詞を避ける。
- 関数の動作は正確に記述。
- 説明しにくい、伝わりづらいものは実例を交えて説明。
- 多くの意味が詰められた言葉を用いることで簡潔に書く。
ループとロジックの単純化
制御フローを読みやすく
・条件式の引数の並び順
if(10 >= length)
よりも
if(length <= 10)
の方が読みやすい。
読みやすくするためには、
左側・・・調査対象(変化するもの)
右側・・・比較対象(あまり変化しない。安定なもの。)
にすると良い。
・if/elseのブロックの並び順
if(a == b){
...
} else{
...
}
if(a != b){
...
} else{
...
}
上記の2例では1つめが良い。
これも以下のように優劣が決まっている。
- 条件は否定系より肯定系を使う
- 単純な条件を先に書く
- 関心を引く、目立つ条件は先に書く
これらの条件が重なった場合は自分で判断する。
・三項演算子
基本的にはif/elseを使う。
(条件) ? a : b を使うのは、簡潔にわかりやすく書ける場合のみ。
Author And Source
この問題について(「リーダブルコード」の要約・まとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/makumaaku/items/a822c14a6be860e70035著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .