6章三角測量

数年前、レガシーコード対応の支援を求めるクライアントを訪問しました。開発者の何人かにインタビューする機会があったので、チームの経験がいちばん短いメンバーに、貢献できるようになるのにどれだけ時間がかかったと思うか尋ねました。

「3か月」という答えでした。

コードベースを記憶して、自信を持って編集できるようになるまでに、そんなにかかったと言うのです。コードを少し見せてもらいましたが、本当に複雑でした。8つ以上のことが同時に行われていました。本当のところ、70個をゆうに超えることを同時に行なっているメソッドもいくつかありました。

そんなコードベースのなかを動き回れるようになるには時間がかかります。でも不可能ではありません。人間の脳は7つのことしか追いかけられないという理論の反論になるのではと考える人もいるかもしれませんが、理論は依然として正しいと私は思っています。これから説明します。

6.1 短期記憶と長期記憶

短期記憶は7という数字が関わっているという3.2.1の話を思い出してください。ワーキングメモリ以外に、脳には長期記憶が備わっており、まったく違う規模の容量を持っています[80]

3.2.1で説明したとおり、脳をコンピューターとしてとらえるメタファーには注意が必要です。長期間にわたる大容量のメモリを備えているのは確かなようですが、安定したものではありません。図6-1のように長期記憶と短期記憶のつながりはありますが、短期記憶とは別のシステムなのです。

短期記憶は長期記憶よりはるかに小さい(図の比率は正確ではない)。短期記憶のかたまりのほとんどは、「スコープから外れる」と「消えて」しまう。だが、なかには長期記憶に移動して、長く残るものもある。長期記憶の内容は短期記憶に「ロードする」ことができる。RAMとハードウェアのように考えたくなるが、このメタファーはこれ以上広げないほうがよい

図6-1 短期記憶は長期記憶よりはるかに小さい(図の比率は正確ではない)。短期記憶のかたまりのほとんどは、「スコープから外れる」と「消えて」しまう。だが、なかには長期記憶に移動して、長く残るものもある。長期記憶の内容は短期記憶に「ロードする」ことができる。RAMとハードウェアのように考えたくなるが、このメタファーはこれ以上広げないほうがよい ...

Get 脳に収まるコードの書き方 ―複雑さを避け持続可能にするための経験則とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.