どーも。しらたまです。
今回は「リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック」という本を通して、コードをより読みやすく、理解しやすくするためのテクニックについて学んだことを共有します。
特に、名前付けの重要性や具体的なテクニックに焦点を当てました。
この記事ではその要点をまとめています。
読んでいる本
リンク
「なぜこの本を選んだのか」
他の人にとって読みやすい、わかりやすく良いコードが描けるようになりたいと思ったため。
良いコードの書き方を純粋に知りたかったから。
自分が書くだけでなくレビュワーになった時にも使えると思ったため。
どこまでの内容か
はじめに〜3章まで
この本で得られそうなこと
- 読みやすいコードを書き方が学べる。
- 誰かが読んだ時に理解する時間を最短にする方法が得られる
優れたコードの定義
他の人が最短時間でコードの内容を理解できること。
自分一人のプロジェクトだとしても、コードの内容を理解しやすくすることには価値がある。
半年後の自分がターゲットになるかもしれない。
(確かに昔自分が書いたコードは忘れていることが多いので、理解しやすいものだったら次の仕事もしやすくなるかも)
名前に情報を詰め込む
明確で具体的な名前をつける
- 「変数」や「関数」には明確な名前をつける
- 誤解がなく意図が伝わる名前にする
- 単純に「get」だけだと何を取ってくるかわからない
fetchPage
やdownloadPage
のように何を取ってくるのかが伝わるようにすべき
- 抽象的ではなく具体的な名前をつける
- 名前と目的が一致する名前にする
- 複数の概念を無理に1つにまとめるより、わかりやすく別々に分けた方が良い。
単位や属性を明示する名前にする
- 単位や属性をつけてみる
- 単位の場合、秒(ms)などを付ける
- 属性の場合、
unescaped_comment
のようにcomment
の前にエスケープ前という説明を付ける
// 悪い例
String s = "sだと何を示しているかがわからない";
// 良い例
String unescaped_comment = "エスケープしていないコメントだということが変数名で読み取れる";
長い名前は避ける
行数が少なく一目で分かるような場合は短い名前で良い
- 使い方が一目で見えるのであれば、変数や関数の名前が短くても理解ができる
- ただし、行数が多い場合は画面をスクロールしたりするので何を定義しているかわかりづらくなる
- そのため、名前に情報を詰めて明確にしておく必要がある
頭文字や省略形を使う
string
だったらstr
を使うなどして短くしてみる- プロジェクト固有の略語だと新規参画の人が理解できないので気を付ける
- 自分の会社だと略語が決まっており、辞書登録しているので共通認識があるので大丈夫そう!
不要な単語は切り捨てる
- 短くして意味が通じるなら余計な単語がついているということなので消す。
- ついつい長くなってしまうので、気をつけたい。。
他の意味と間違えられないか自問自答する
誤解を避ける名前の工夫
- 限界値だったらmax、minを使ったり共通認識の単語を使うと良い
- 名前を否定形にするのは避ける
- 単語が短くて済む
- 使う人の期待に合わせる
- 先入観を持っているために誤解されたりするので、理解できるように名付ける
- 本では例として「get」を挙げていた。
- getは軽い動作のものであると思い込んでいる人が多いので、内部で大量のデータを読んでいたりしたら意図しない使われ方になる
- その場合は、「名前」を変えるべき
複数の名前を考えて比較する
- 一つの関数や変数に対して複数の名前を考えてみる
- 比較することでより良い名前になっていく
結論
- 「名前」に適切な情報を詰め込むことが大事
- 最善な「名前」は誤解されない名前であること
- 意図を正しく理解できる名前をつけるべき
- 反対意見を考えて、誤解されない名前になっていないかを想像することが重要
次回は、さらなる読みやすいコードを実現するためのテクニックを紹介していきます。
引き続き、他の人にとってわかりやすいコードを書くための実践的なアプローチを探っていきますので、
お楽しみに!
コメント