Open13

コードを読む

えびえび

https://speakerdeck.com/shiz/fu-za-sanili-tixiang-kautamenokodorideinguru-men

読むのが辛い背景

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

えびえび

戦略:
短期記憶の負荷を軽減させるには
=> チャンク化。

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

えびえび

長期記憶に記憶を保持させるには?
=> スキーマ

スキーマとは、似た記憶同士が紐づいたネットワーク構造。
スキーマを強固に構築することを念頭に置いた時、
複数の経路から同一の情報にアクセスできる状態を作れると強い。
=> 深堀を恐れないフェーズも必要。

定期的に情報に触れる努力を行う。
=> 繰り返し、大事。

情報は、短期記憶に到達する前に「感覚記憶」を経由している。
感覚記憶→短期記憶。
感覚記憶は短期記憶以上に多くの情報をもっている。


えびえび

長期記憶には強度の問題もある。

  • 保存強度:どれだけ長く記憶できるか
  • 検索強度:どれだけ素早く思い出せるか

うち、検索強度には訓練が必要。

えびえび

長期記憶の検索強度を高めるキーワード

  • チャンク化
      ・リスト化や見出し付
  • 深堀り
      ・スキーマの強化
えびえび

残る課題
認知負荷

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

えびえび

認知負荷三分類

  • 課題内在性負荷:
    課題本来の難しさによる負荷

  • 課題外在性負荷:
    課題と無関係な負荷

  • 学習関連負荷:
    長期記憶に情報を保持する際に発生する負荷

うち課題外在性負荷をどうにかしたい。

えびえび

課題外在性負荷への対応

  • 認知的リファクタリング
    別にデバッグするわけでもないなら問題はないはず。
えびえび

課題内在性負荷への対応

=> 難しさを分散させることを検討する。

  • 情報を頭の中から外に出す。

えびえび

コードの意図がつかめない
ここでコードの意図 = コード全体から見た役割や他コードとの関係

対策

  • 最初にコードのイメージを作る
  • 天から理解を広げてゆく
  • 変数の役割を考える
  • 文章読解術を応用
えびえび

**最初にコードのイメージを作る **

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