「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
by
HideyukiKitao
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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 で スラスラ読めるように整えること。 それが、設計手法を学ぶ理由です。