見出し画像

【書籍】リーダブルコード

書籍概要

リーダブルコード
――より良いコードを書くためのシンプルで実践的なテクニック

書籍から学んだこと

「コードは他の人が最短時間で理解できるように書かなければいけない」

「優れた」コードとは読みやすいコードです。
読みやすいコードを書くためには、大きく分けて、
「表記上の改善」と「ロジック的な改善」を考えなければいけません。
※表記上の改善の部分のみ、まとめます。

表記上の改善

具体的で分かりやすい名前を付ける

関数名を見ただけで、「その関数がどんな動作をするのか」を
誤解なく伝えることができるように、名前を考えるべきです!

例:GetPage() → FetchPage(), DownloadPage()
  Size() → Height(), NumNode(), MemoryBytes()
  Stop() → Kill(), Resume(), Pause()
  filter()→ select(), exclude()

☆もっと適する単語はないか、
 シソーラス(類語辞典)を使って調べてみましょう!

また、誤解されない名前を付けるためには、
以下のことに注意しましょう。

上下の限界値を含めるときは、min_, max_
範囲を指定するときは、first, last
包含・排他的範囲には、begin, end
プール値の変数名には、頭にis・has・can・should

// memo
// todo : プール値とはなんぞやの記事を書いてリンクを張る

ブール値 (bool値)とは「論理値」のこと。
用語の中身としては
「そうだよ!(真:true)」か「違うよ!(偽:false)」
のどちらかが入ってますよ!な値のことです。

プール値 https://wa3.i-3-i.info/word16183.html

コメントすべきことを簡潔に書く

コメントはとても大事です。
しかし、コメントすべきではないことまで書いてあるコードは、
読みやすいコードとは言えません。

× コメントすべきではないもの
・コードからすぐに抽出できること
・ひどいコードを補う補助的なコメント(コードを修正すべき)
○ コメントすべきもの
・なぜコードがほかのやり方ではなくこうなっているのか
・定数の値にまつわる背景
・コードの欠陥(記法を使って示す)

記法 | 典型的な意味
TODO: | 後で手を付ける(優先度高)
todo: | 後で手を付ける(優先度低)
FIXME: | 既知の不具合があるコード
HACK: | あまりきれいじゃない解決策
XXX: | 危険!大きな問題がある

☆ コメントするときは、読み手の立場になって考えることが大切です!
・コードを読んだ人が疑問に思うところを予想してコメントをつける
・平均的な読み手が驚くような動作は文章化しておく
・ファイルやクラスには「全体像」のコメントを書く
・読み手が細部にとらわれないように、コードブロックにコメントをつけて要点をまとめる

◎読みやすいコードを書くためのチェックリスト

*具体的で分かりやすい名前を付ける

 ・より明確な意味を持つ単語に言い換えることはできないか?
 ・誤解されない名前か?他の意味と間違えられないか?
 ・限界値を含む場合、min,maxがついているか?

*美しい見た目「余白・配置・順序」を意識する

 ・縦の線がまっすくになっているか?
 ・改行位置は一貫性があるか?
 ・意味のある順番になっているか?
 ・似ているコードは似ているように見えるか?
 ・関連するコードはまとめてブロックになっているか?

*コメントすべきことを簡潔に書く

 ・コメントすべきでないものにコメントされていないか?
 ・コードの欠陥にコメントしているか?
 ・定数選定の背景をコメントしているか?
 ・読み手の立場になって考えられているか?
 ・複数のものを指す可能性がある代名詞(こそあど)を使っていないか?
 ・関数の動作は正確に書いているか?
 ・コメントは簡潔か?

より読みやすいコードにするために参考にするサイト

// TODO:今後使っていく中で編集していく

# 類語辞典(シソーラス)
# CSSクラス名の決め方
# class名リスト
# 関数名ネーミングサイト

書籍を読んだ感想

全体的に読みやすくて、分かりやすい本でした!
この本は大きく分けて、前半後半2種類の内容に分けられると思います。

前半は、名前の付け方や見た目の美しさ、コメントの書き方などの
「表記上の改善」に関すること。
後半は、具体的なコードを参照しながら考える
「ロジック的な改善」に関すること。

「表記上の改善」は、エンジニア初心者の私にも分かりやすく、
今すぐにでも意識すればできることなので、実践していきたいと思います!

「ロジック的な改善」は、具体的なコードを参照しながら、丁寧に説明されています。ただ、私の勉強不足で、コードの読解ができない状態だったので、もっと経験を積んでから再度読み直したいと思いました。

エンジニアとして働き始める今のタイミングで読むことができて本当に良かったと思います!
エンジニアとして誰もが読むべき本であるように感じました。

この本の内容はQiitaの記事で分かりやすくまとめているものがあるので、
こちらを参照してください。
https://qiita.com/fkrw/items/7646563a2b238fbcff9a






この記事が気に入ったらサポートをしてみませんか?