Slide 1

Slide 1 text

「コードは上から下へ読むのが一番」 と思った時に、思い出してほしい話 ~「一本道」と「迷路(アーキテクチャ)」の選択~ @kitaohx 2025.12

Slide 2

Slide 2 text

誰もが通る「一本道」 プログラミングを始めるとき、こう教わりました。 「プログラムは上から下へ動く」

Slide 3

Slide 3 text

「いかに作るか」 全くの新規で開発する場合 まず「上から下への一本道」で書く のは正義です。 迷わない。 探さない。 ただ書き下す。 プログラミング楽しい! 0100 START. 0110 MOVE 0. ... ... ...

Slide 4

Slide 4 text

楽しい時間は短い コードが 1,000行、5,000行...と育った時。 かつての「快感」は「苦痛」へと変わります。 「認知の限界(Cognitive Limit)」の到来です。

Slide 5

Slide 5 text

脳内シミュレーションの崩壊 一本道を維持するために、 あなたは巨大な文脈を脳に積み上げ続けます。 + Status = Active Count = 99 User = A001 Items = [A, B, C]... 0100 START. 0110 MOVE 0. ... ... ...

Slide 6

Slide 6 text

脳のメモリが溢れる ここで、もし電話が鳴ったら? 変数がもう一つ増えたら? 「あれ、今の状態(State)どうなってた?」

Slide 7

Slide 7 text

一瞬で積み上げたコンテキストが崩壊(Reset)します この経験を経て、私たちはある決断に至ります。

Slide 8

Slide 8 text

決断:「分ける」ということ 限界を迎えた我々は、コードを クラスやモジュールに分割し始めます。

Slide 9

Slide 9 text

なぜか?「綺麗だから」ではありません。 「人間のスペックの限界だから」です。

Slide 10

Slide 10 text

現代のジレンマ しかし、分割したことで 新たな壁に直面します。 「バラバラに分かれていて、逆に読みにくい...」

Slide 11

Slide 11 text

どちらが「読みやすい」か 一本道 (Procedural) 地図不要。 ただし「記憶力」で殴る。 関心事の分離 (SoC) 記憶不要。 ただし「地図」が必要。

Slide 12

Slide 12 text

私たちが選んだ道 なぜ私たちは、直感的な一本道を捨てて 複雑な「関心事の分離」を選んだのか?

Slide 13

Slide 13 text

それは、人間の脳の仕様上 「記憶力」よりも「地図」の方が スケールするからです。

Slide 14

Slide 14 text

脳の2つのモード この選択を、認知心理学の System 1 / System 2 で紐解きます。 System 1 (速い) System 2 (遅い) 特徴 直感的・無意識 論理的・意識的 コスト 省エネ 激しい消耗

Slide 15

Slide 15 text

脳内メモリ(RAM)は有限 一本道コードで、System 2 を 「変数の記憶」で使い果たすと... 変数の記憶・追跡 (80%) 空き ▲ 限界:ビジネスロジックを考える余地がない

Slide 16

Slide 16 text

アーキテクチャ(地図)の効果 構造化し、詳細を隠蔽することで 脳のメモリを解放します。 地図の把握 ビジネスロジック (80%) ▲ 解放:脳を「記憶」ではなく「思考」に使う

Slide 17

Slide 17 text

では、どう戦うか 理論はわかりました。 では、明日から我々はどうコードを書けばいいのか?

Slide 18

Slide 18 text

武器は一つではない 抽象化レイヤー、DI、境界づけられたコンテキスト... SoCを実現する武器は多くあります。 しかし、その目的は同じです。 「詳細を、安全に忘れること」

Slide 19

Slide 19 text

最も身近な武器:「カプセル化」 今回は1つだけ、もっとも身近な 「カプセル化(隠蔽)」 について、触れます。

Slide 20

Slide 20 text

これは単なる「データ隠し」ではありません。 読み手に対する思いやりです。

Slide 21

Slide 21 text

カプセル化=「忘れる自由」 中身がどうなっているか 「知らなくても使える」状態にすること。 つまり、読み手に 「詳細を忘れていいんだよ」 と伝えるメッセージです。

Slide 22

Slide 22 text

💊 カプセル 苦い薬(複雑なロジック)を 飲みやすく(使いやすく)包 む技術 詳細を隠し、脳のメモリを節約する。

Slide 23

Slide 23 text

明日からの問いかけ コードを書くとき、自分に問うてみてください。 「この設計は、未来の読み手が 中身を『忘れる』ことを許しているか?」 許していれば、それは良い設計です。

Slide 24

Slide 24 text

結論 「わかりやすさ」とは 読み手の脳への「思いやり」である。 未来の誰かが、System 1 で スラスラ読めるように整えること。 それが、設計手法を学ぶ理由です。