なぜdatabase-table-recordなのか?
なぜ世界はこのように'3段階(3depth)'を好むのか?
プログラミングを学ぶと、
不思議なことに構造がいつも3段階に分かれるという事実に気づく。
Ruby: Module → Class → Method
DB: Database → Table → Record
Rails MVC: Model → View → Controller
ウェブ構造: Domain → Path → Resource
さらに自然科学も似ている。
生命: DNA → 細胞 → 器官
物質: 原子 → 分子 → 物体
宇宙: 星 → 銀河 → 銀河団
ここまでくると
“なぜ偶然3段階なのか?”
という問いが自然に浮かぶ。
偶然か?
必然か?
1段階は“あまり単純だ。” 2段階は“構造がない。” 3段階でやっと‘意味’が生まれる。
1段階だけでは
区別がない。
世界が一塊のように感じられる。
2段階構造は
単純な二分法に近い。
二者択一しかないため
立体感を作ることができない。
しかし
3段階になると、やっと構造が生まれる。
大枠
その中のグループ
そして個々の要素
この構造は
情報を保存し、
理解し、
拡張するのに非常に適切な深さだ。
3は
“あまり浅くも、あまり深くもない数字”だ。
人間の脳は3段階を最も‘直感的に’受け入れる。
私たちが暮らす空間は3次元だ。
上/下
左/右
前/後
空間を認識する脳の基本構造は3次元型であるため、
3段階構造は最も直感的に理解される。
プログラムの概念を4段階や5段階に分割すると、
人間のworking memoryはすぐに飽和する。
逆に
3段階構造は
“一度にしっかりと把握できる情報の単位”だ。
そのため多くの学問やツール、システムは
自然に3depthを持つ。
プログラミングの概念も3段階で最も安定している。
Rubyでは:
Module – 大きな概念のまとまり
Class – 具体的な形
Method – 実際の行動
この3段階を超えると、
一般の学習者にはあまりにも複雑になる。
だから言語設計自体が
“人が理解しやすい構造”を追っているのだ。
Databaseも同じ。
Database – 大きな保存空間
Table – 分類された引き出し
Record – 実際に保存された値
4段階に分解してしまうと、
逆に管理が複雑になり、
脳はそれを一つの単位として受け入れにくい。
つまり、世界の多くのシステムは
“人が理解しやすいオリジナルUX”を追っている。
宇宙は3次元であり、人間の思考も3次元的である。
面白いことに
物理学者たちが言うには、
“3次元空間は生命が安定して存在できる最小次元である。”
4次元ならば
重力法則が崩れ、
惑星が安定した軌道を維持するのが難しい。
2次元ならば
生命が複雑な構造を持つのが難しい。
3次元は
宇宙が安定して維持される
微妙な次元である。
プログラミングの概念も
すべて3段階構造になっている理由は、
おそらく私たちがこの宇宙の法則に従って
ツールを作っているからかもしれない。
結論: 3depth構造は‘私たちが理解し、創造できる最大効率単位’だ
あまり浅くなく
あまり深くなく
直感的に把握でき
拡張も可能で
システム全体を立体的に把握できる
最も理想的な深さはまさに3depthだ。
だから世界の多くは
本能的にこの構造に従っている。
そしてプログラミングは
人間の思考を拡張するツールであるため、
当然、人間の思考構造と最もよく合う
3段階を基に設計されている。
だから開発者になるということは‘3段階構造を扱う人間になる’という意味だ
大きな概念を把握し
その中で構造を作り
個々の要素を正確に扱うこと
これがまさに開発者の思考だ。
世界が複雑に見えるが
実際はほとんどが3段階構造の繰り返しに過ぎない。
それを理解すると
プログラミングも、データも、ウェブも
急に単純で明確に見え始める。