🦔

リーダブルコードを読んで メモ用

2021/12/23に公開約2,100字

はじめに リーダブルコードについて

少し前にリーダブルコードを読んだのでメモ

表面上の改善

変数や関数は分かりやすい命名

その変数や関数がどういったもので、何をやっているのかを分かりやすくした方が良い。
意味のない名前や、凡庸的な名前は避ける。tmp等使う場合は、本当に一時的であれば構わない。名前に値や単位などの情報を詰めこむ。

なぜコメントを書くのか

他人が見たときにより素早く、明確に理解できるように、自分がコードを書いていたときに考えていたこと等を書く(a,bで迷ったが、○○のためcにしました等)。
変数を見てわかるようなコメントは不要であり、変数に分かりやすい名前を付ける方が良い。
読み手の立場になって「え?」と思われるようなコードはコメントを書く。

引用文
コメントすべきでは「ない」こと:
・コードからすぐに抽出できること。
・ひどいコード(例えば、ひどい名前の関数)を補う「補助的なコメント」。
コメントを書くのではなくコードを修正する。
記録すべき自分の考え:
・なぜコードが他のやり方ではなくこうなっているのか(「監督コメンタリー」)。
・コードの欠陥をTODO: やXXX: などの記法を使って示す。
・定数の値にまつわる「背景」。
読み手の立場になって考える:
・コードを読んだ人が「えっ?」と思うところを予想してコメントをつける。
・平均的な読み手が驚くような動作は文書化しておく。
・ファイルやクラスには「全体像」のコメントを書く。
・読み手が細部に捕われないように、コードブロックにコメントをつけて概要をまとめる。

インデント見やすく揃える

コードを揃える、ブロックレベルで似たようなコードはシルエットも揃える、並び揃び順もそろえる(A,B,Cと並んでいるところを別の箇所でC,A,Bと並べたりしない)

ループとロジックの単純化(シンプルなロジック)

・if条件は基本的に肯定系
・条件の右を比較対象(固定値の場合)
・処理の例外を早めに返す(関数の上部で単純な条件を先に処理する、gurde節と呼ぶらしい)
・ネストを浅くする

引用文
最も簡単な方法は「説明変数」を導入することだ。大きな式の値を保持する説明変数には、3つの利点がある。
・巨大な式を分割できる。
・簡潔な名前で式を説明することで、コードを文書化できる。
・コードの主要な「概念」を読み手が認識しやすくなる。
その他には、ド・モルガンの法則を使ってロジックを操作する手法がある。
変数を減らして、できるだけ「軽量」にすれば、コードは読みやすくなる。具体的には、
・邪魔な変数を削除する。ーー本章では、結果をすぐに使って、「中間状態」の変数を削除する例を示した。
・変数のスコープをできるだけ小さくする。ーー変数を数行のコードからしか見えない位置に移動する。

コードの再構成

無関係な下位問題を抽出し、別の関数にする。
読みづらい関数やロジックがあった場合、別のクラス・関数に、分割できないか?
関数内の複数の領域で別々のタスクを行わず、関数を分けるかせめて同じ領域に区切る

おわりに

コードを書きつつ読み返しながら体に染み込ませたい。

https://www.amazon.co.jp/リーダブルコード-―より良いコードを書くためのシンプルで実践的なテクニック-Theory-practice-Boswell/dp/4873115655/ref=sr_1_1?adgrpid=104497696299&gclid=CjwKCAiAh_GNBhAHEiwAjOh3ZGJUMVgTvq_Mbjzv16x3Qf4LYV5RXHbBVA4ah9hYFfqgyBWPH5fRsBoCeu8QAvD_BwE&hvadid=553831601952&hvdev=c&hvlocphy=1009540&hvnetw=g&hvqmt=e&hvrand=13081951565474244096&hvtargid=kwd-334307148361&hydadcr=16038_13486739&jp-ad-ap=0&keywords=リーダブルコード&qid=1639739131&sr=8-1

Discussion

ログインするとコメントできます