Open13
コードを読む

読むのが辛い背景
- 知識不足
- 情報不足(色々なところに散らばったコードをかき集めて、繋ぎ合わせないと読めない)
- 処理能力不足(散らばった破片を再生成するのは苦しい。)

戦略:
短期記憶の負荷を軽減させるには
=> チャンク化。
チャンク化させたものを長期記憶と結びつける。
長期記憶から情報を取得
=> 短期記憶が容量の限界に達しづらい。

長期記憶に記憶を保持させるには?
=> スキーマ
スキーマとは、似た記憶同士が紐づいたネットワーク構造。
スキーマを強固に構築することを念頭に置いた時、
複数の経路から同一の情報にアクセスできる状態を作れると強い。
=> 深堀を恐れないフェーズも必要。
定期的に情報に触れる努力を行う。
=> 繰り返し、大事。
情報は、短期記憶に到達する前に「感覚記憶」を経由している。
感覚記憶→短期記憶。
感覚記憶は短期記憶以上に多くの情報をもっている。

長期記憶には強度の問題もある。
- 保存強度:どれだけ長く記憶できるか
- 検索強度:どれだけ素早く思い出せるか
うち、検索強度には訓練が必要。

長期記憶の検索強度を高めるキーワード
- チャンク化
・リスト化や見出し付 - 深堀り
・スキーマの強化

残る課題
認知負荷
ワーキングメモリで情報を処理する際にかかる負荷

認知負荷三分類
-
課題内在性負荷:
課題本来の難しさによる負荷 -
課題外在性負荷:
課題と無関係な負荷 -
学習関連負荷:
長期記憶に情報を保持する際に発生する負荷
うち課題外在性負荷をどうにかしたい。

課題外在性負荷への対応
- 認知的リファクタリング
別にデバッグするわけでもないなら問題はないはず。

課題内在性負荷への対応
=> 難しさを分散させることを検討する。
- 情報を頭の中から外に出す。

コードの意図がつかめない
ここでコードの意図 = コード全体から見た役割や他コードとの関係
対策
- 最初にコードのイメージを作る
- 天から理解を広げてゆく
- 変数の役割を考える
- 文章読解術を応用

**最初にコードのイメージを作る **
- 対象のコード全体を読み、直後に内容を思い出す。
- 変数の役割を考える(場合によっては命名の変更を行う)
- 文章読解手法の応用


- 実装は極力見ない。インターフェイスと役割を理解する。
- 読んでいるメソッドやクラスのインターフェイスの役割やパラメータをしっかり理解する