LoginSignup
0
0

More than 3 years have passed since last update.

「リーダブルコード」の要約・まとめ

Last updated at Posted at 2021-03-21

「リーダブルコード」 ~より良いコードを書くためのシンプルで実践的なテクニック~
を読んだので、簡単に要点だけをまとめてみました。
最短最速で要点を抑えたい人には最適です。

全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 を使うのは、簡潔にわかりやすく書ける場合のみ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0