LoginSignup
3
1

More than 3 years have passed since last update.

【読書メモ】リーダブルコード    (第Ⅰ部 1章〜6章)

Last updated at Posted at 2020-07-04

目的

客観的に見て「より良い」コードの書き方・考え方を学び、今後のコードの記述に生かすため。今回は、区切りよく第Ⅰ部をまとめた。

一言でいうと、どんな本?

とにかく「他人にとって」、「読みやすい」コードを書くことに専念しろ!!

印象に残った点のメモ(一部自分なりにまとめています)

1章 理解しやすいコード

「読みやすさ」の基本定理:コードは他の人が最短時間で理解できるように書かなければならない

「短い」だけが優れたコードではない。数日後の「自分」も含めた”他人”にとって、理解するまでの時間が短いコードが望ましい

2章 名前に情報を詰め込む

基本はこの6つを意識してコードを書くこと。

1. 明確な単語を選ぶ

シソーラス(類語辞典)などを使って類語で示せないか考えること。

2. 汎用的な名前は避けるor使う状況を選ぶ

ポイントは、その変数に、その変数を定義した目的や値を理解できるかどうか。予め決まりきっているものに汎用的な名前をつけるのはOKだが、そうでない場合、名前は慎重に選ぶこと。

3. 抽象的な名前よりも具体的な名前を使う

「メソッドの動作をそのまま表していることが分かる」など、具体的で動作のイメージが分かりやすい名前を使うこと。複数の概念が混ざる場合、分けて定義しても良い。

4. 接尾辞や接頭辞を使って情報を追加する

大切なこと、知らせたいことがある場合は、変数名に重要な内容を書いてしまうという手もある(単位、危険、注意を喚起する情報など)。

5. 名前の長さを決める

名前の長さは問題ではない(エディタの補完機能により長い名前でも時短で書けるため)。省略することで、新しいメンバーが見たときに「何これ?どんな意味なん?」ってならないように気をつけよう。スコープが数画面におよぶ変数には長い名前をつけること。

6. 名前のフォーマットで情報を伝える

大文字や_(アンダースコア)などに意味を含めること。ローカル変数との区別も意識して。

3章 誤解されない名前

鍵となる考え:名前が「他の意味と間違えられることはないだろうか?」と何度も自問自答すること

つまり、書いている自分の意図が、他の人に正しく伝わる名前を設定しろということ("read"は、「読(み込)む」「読んだ」なのか分からない)。限界値などは、max,min、範囲ならfirst,lastなどを使って伝わりやすくする。

4章 美しさ

見た目が美しいコードを書くこと。個人的に「これ大事だな」と思ったものはこちら。

  • 一貫性のある適切な改行位置
  • 重複する内容があれば、(ヘルパー)メソッドを使って整列させること
  • コードを”段落”に分割する(分割するものの間にコメントを入れるなど)

5章 コメントすべきことを知る

コメントを書く目的は、書き手の意図を読み手に知らせること

  • 逆にコメントにしなくていいこと、「コードを見ればすぐに分かるな」というもの
  • 優れたコメントより、優れた”名前”
  • 優れたコメントとは、自分の考えを記録したもの(「こんな風に考えているんだな」と思考過程が分かるコメントがないとレビューしてもらいにくいらしい)
  • 欠陥のあるコードについて、コメントで書いてOK。大切なのは、これからそのコードをどうするつもりなのか?自由に書くことで、コードの状態把握や改善に向かっていける
  • 「このコードを見てびっくりすることはなんだろう?」「どんな風に間違えて使う可能性があるんだろう?」と自問してみること。
  • ソースコードを読んだだけでは分からない内容や、ファイルやクラスの全体像などを、高レベルのコメントに記述すること。
  • コメントを書く作業のポイントは、
  1. 頭の中にあるコメントをとにかく書き出す
  2. コメントを読んで改善が必要なものを見つける
  3. 改善する

6章 コメントは正確で簡潔に

鍵となる考え:コメントは領域に対する情報の比率が高くなければならない

  • 複数のものを指す可能性がある代名詞は避ける
  • 関数の動作はできるだけ正確に説明する
  • よく分からない引数にはインラインコメントを使う
  • 多くの意味が詰め込まれた言葉や表現を使って、コメントを簡潔に保つ

感想・気付き

  • ポートフォリオ制作で一時的にコードを残す以外でコメントを残したことがなかったので、GitHubに上げる際も、コメントを残していこうと思った。
  • 自分が設定している変数が、ちゃんと意味の理解しやすいものなのか?ポートフォリを改修する際にコードを見直していこうと思った。

書籍のURLはこちら

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

3
1
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
3
1