コーディングし始めたら読んでみてほしいとおすすめされた書籍
『リーダブルコード』の内容を振り返ってみる。
要点のみ掴んだざっくり飛ばし読みしたあとの理解度をChatGPTで補完してもらった内容。
- 名前に情報を詰め込め
- コメントの目的は正しく理解しろ
- 制御フローは読みやすさを大切に
- 巨大な式は分割して書け
- 変数は読みやすさを求めよ
- コードには簡潔さと明確さを求めよ
- チームでの一貫性を意識せよ
- テストを大切にせよ
名前に情報を詰め込め
関数や変数の名前を決めるときは具体的でわかりやすいものにする。
例えば、”getpage”のような記載では、「どのページのことを言っているんだ…?」と混乱する原因になってしまう。
そのため、”fetchPagefromCache”のように具体的な処理内容を示す名前にすると良い。
コメントの目的は正しく理解しろ
コメントはコードの意図を説明するために使う。
価値のある内容や関連するコメントを残し、特定の個人にしかわからない内容は避ける。
例えば、以下のような書き方が好ましい。
// キャッシュから指定されたページを取得する関数
function fetchPagefromCache(url) {
// ローカルキャッシュオブジェクトのチェック
if (localCache.has(url)) {
// キャッシュからページを取得して返す
return localCache.get(url); } else {
// ページがキャッシュにない場合の処理
return null; } }
以下略。
制御フローは読みやすさを大切に
コードの可読性や保守性を向上させることは、バグの発生を現象させてチーム開発の効率を高めることに繋がる。
また、明確な制御フローはコードのリファクタリングを容易にするため、長期的な健全性を維持するためにも重要になる。
ネストを浅く保つ:
ネスト(入れ子)されたコードが深くなるとコードの可読性が損なわれるため、浅く保つことでシンプルで読みやすいコードになる。
早期リターンを活用する:
条件が満たされない場合はすぐに関数から抜け出す(リターンする)ことで、ネストを浅く保つことができる。
これにより、メインのロジックをより簡単に理解できるようになる。
否定文ではなく肯定文を使う:
条件文では、否定文よりも肯定文を使うほうが直感的に理解しやすい。
コードを読む人が条件を理解できるようにするために可能な限り肯定文を使うこと。
三項演算子を適切に使用する:
三項演算子は簡単な条件分岐を1行で書くことが出来る。
ただし、複雑なロジックには使用せず、シンプルな条件分岐に限定すること。
巨大な式は分割して書け
巨大な式は一度に理解するのが難しく、保守性が低くなる。
そのため、式を分割して書くことでコードの意図が明確になり、読みやすくなる。
その為に必要なテクニックは以下の通り。
説明変数を使う:
説明変数は、複雑な式の一部を分割して、その部分に名前を付けるための変数。
これにより、その部分な何を表しているのかが明確になる。
要約変数を使う:
要約変数は、複雑な式の結果を分割して、その結果に名前を付けるため変数。
これにより、最終的な結果がどのように計算されるのかがわかりやすくなる。
変数は読みやすさを求めよ
コードの読みやすさと信頼性、保守性の大幅な向上を実現するためには以下のテクニックを要する。
不要な変数を削除して、変数のスコープを縮める:
変数の使用範囲を限定するとコードの可読性と保守性が向上する。
グローバル変数は避ける:
プログラム全体でアクセス可能なグローバル変数は意図しない変更や名前衝突を招きやすいので、できるだけローカルスコープで変数を管理する。
変数は出来るだけイミューダブルにする:
例えば”const”を使用して変数を不変の値にすることでコードの予測可能性と安全性を高める。
これらの原則を守ることは、コード動作の安定、バグの防止と特定のしやすさ、複数のスレッドや非同期処理による競合を防いで並行処理を安全性を高めるなどのメリットがある。
コードには簡潔さと明確さを求めよ
短いコードを書くよりも意味が明確で理解しやすいコードを優先すること。
例えば一つの関数やクラスはひとつのことを行うようにする。
チームでの一貫性を意識せよ
チーム全体で定められたコーディング規約を共有して、一貫性のあるコードを書くことでメンバー全員がコードを読みやすく理解しやすいものにする。
テストを大切にせよ
読みやすいコードはテストが容易になる。
テストコードを含めて可読性は一番大切にするべきこと。