Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切...

脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~

前作『「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話』の続編・補足資料です。

私たちは時として、プログラミングの原則に対して直感的な反発や、極端な解釈をしてしまうことがあります。 「クラス分割なんて不要だ、上から読めたほうが楽だ」 「とにかく細かく分割して隠蔽すべきだ」 「パッと見て理解できないコードは悪だ」

これら、私たちの脳が数十万年かけて獲得した「生存戦略(省エネモード)」による正常な反応です。

本スライドでは、ダニエル・カーネマンの「System 1(速い思考) / System 2(遅い思考)」のフレームワークを借りて、以下を解説します。

なぜ脳は「スパゲッティコード」を正当化したがるのか?

なぜ「認知負荷」という言葉を武器にしたくなるのか?

エンジニアの「勘(System 1)」と「論理(System 2)」をどう使い分けるべきか?

どちらが良い・悪いという対立の話ではありません。 脳の特性(仕様)を理解し、スタミナを管理しながら「ギアチェンジ」するためのヒントをまとめました。

前作はこちら
https://speakerdeck.com/panda728/kodohashang-karaxia-hedu-munoga-fan-tosi-tutashi-ni-si-ichu-sitehosiihua

Avatar for HideyukiKitao

HideyukiKitao PRO

December 09, 2025
Tweet

More Decks by HideyukiKitao

Other Decks in Programming

Transcript

  1. System 1:スパゲッティの正当化 上から下へ読むのが一番 クラス分割なんて不要だ 🧠 脳のロジック 脳は「時系列の物語」を好みま す。あちこち飛ぶより、一本道が 一番カロリーを使わないからで す。

    System 2:本来のメッセージ 手続きの価値と限界 初期は最強ですが、複雑化す れば破綻します。 「関心の分離」は脳のメモリ あふれを防ぎます。
  2. System 1:過剰分割の正当化 とにかく細かく分割して 隠蔽しよう。 それが優しさだ 🧠 脳のロジック 脳は「見えない不安」を嫌いま す。とりあえず箱(ブラックボッ クス)に入れて蓋をすると安心し

    ます。 System 2:本来のメッセージ 分割のコスト ファイルを開き、移動する行 為自体が負荷です。 分割はそれ自体が「複雑さ」 を持ち込む行為です
  3. System 1:「認知負荷」の武器化 パッと見て理解できない これはクソコードだ 🧠 脳のロジック 脳は「理解に苦しむもの」を脅威 とみなします。「悪いのはコード だ」とレッテルを貼るのは有効な 自衛です。

    System 2:本来のメッセージ 理解する責任 業務自体が難しいなら、コー ドも難しくなります。 「認知負荷」という言葉を、 盾にしてはいけません。
  4. System 1:文脈の無視 常にこの正解を使うべき 🧠 脳のロジック 脳は「条件分岐」より「不変のル ール」を好みます。毎回ゼロから 考えるのはエネルギーが必要で す。 System

    2:本来のメッセージ 設計はグラデーション 単純なスクリプトと、長年維 持する複雑な業務ロジックで は正解が違います。 適切な複雑さを選ぶ必要が あります。
  5. 省エネ脳の副作用(一覧表) 脳の省エネ反応 (System 1) 本来のメッセージ (System 2) A スパゲッティの正当化 「上から下へ読むのが正義」

    手続きの価値 初期は最強だが、複雑化で破綻する B 過剰分割の正当化 「全て隠蔽・分割するのが正義」 カプセル化のコスト ファイル移動も負荷になる C 「認知負荷」の武器化 「読めない=悪いコードだ」 理解する責任 ドメインの複雑さからは逃げられない D 文脈の無視 「常にこの正解を使うべき」 グラデーション 規模に応じた適切な複雑さを選ぶ
  6. 「本来のメッセージ」とズレた理由 狩猟 (Survival) 現代 (Engineering) 環境の要求 即応性 (Speed) 迷ったら食われる 正確性

    (Accuracy) 複雑なロジックの理解 脳のスペック System 1 (直感優先) System 1 (直感優先) 相性 Best Match 生き残るための最適解 Mismatch 仕様の不一致 「生存」のために最適化された機能が、 「わかりやすい解釈」をしたのです。
  7. そして、System 1 も「強力な武器」です エンジニアの「勘」や「経験」は、 鍛え上げられた System 1 から生まれます。 優れた System

    1 があるからこそ、 私たちは瞬時に危険を察知できます。 違和感(Code Smell):「あ、ここバグりそう」 パターン認識:「あの時の障害と似ている」 高速な実装:「ここは定石通りで書ける」