Open8

202310の課題図書:読みやすいコードのガイドライン

2nofa112nofa11

読書前の予習

  • (予習)その本にかける時間を決める
    10月中 30時間程度
  • (予習)本から学びたいことを書き出す
    • レビューが通りやすいコードが書けるようになる
    • コードレビューをするときの観点を作る
    • コードを読み込む力をつける
  • (予習)胡散臭い人に書かれたと考える
    • LT見たけど、記憶にない(当時の自分にひびかなっかた)
  • (復習)自分の行動の変化を書き出す
  • (復習)記事を書くか、人に話す

読む背景

  • いいボリューム感の本を読みたかった

前書きで気になったこと

  • Kotlinで書かれているのが不安

  • 文字多いから理解して行動に移せるか不安

Hidden comment
2nofa112nofa11

2:命名について

感想

これはOK、これはNGみたいなパターンが網羅されていてGOOD

文法

  • クラスや変数:名詞句
  • 関数:命令形

原則

  • 変数:その対象が「いつ・どこで・どのように」は名前に入れない
  • 前置詞を使うのも明確な変数にするコツ

その他

  • 無意識に文法<記述の統一をしてしまったことがある
2nofa112nofa11

3:コメント

メモ

コメントを書く目的

  • コードの理解を加速させる
  • ミスを防ぐ
  • リファクタリングを促進する

感想

2nofa112nofa11

6:依存 結合度

メモ

目的

  • 依存の強さ
    • 不正な使い方ができてしまうのはNG(どこからでも呼べてしまうのはプライベート関数にすることで制御)
    • 値の更新は一箇所で(Storeとかの概念に近いのかも)
    • 表面的なメッセージ結合やってるわ、、、
    • コンピューティッド使うとメッセージ結合になるけど良くない?
  • 方向
  • 重複
  • 明示性

感想

2nofa112nofa11

6:依存 方向

メモ

理解した内容

  • 依存関係のパターン
    • 呼び出し元⇔呼び出し先
      • thisを使った呼び出しは関係を複雑にする
      • クラスを分割する
    • 具体⇔抽象
      • 抽象クラスにメソッドを持たせない
    • 複雑・可変⇔単純・不変
      • 単純→複雑な依存を作らない複雑なメソッドの修正に単純が引っ張られるため

感想

  • 自分でコード書きたくなってきた
2nofa112nofa11

6:依存 依存の重複

メモ

理解したメモ

  • 数珠繋ぎよくない:影響範囲が無駄に広がる、可読性下がる

  • デルメルの法則

    • this自身
    • thisのプロパティ
    • 引数
    • メソッド内のオブジェクト
    • グローバル変数
  • プロバイダーパターンで依存を回避する