なぜ module-class-methodなのか?

プログラミング、データベース、ウェブ構造の3段階に関する理由と意味。3段階の安定性と直感性。人間の思考と宇宙の3次元的特性。

밤치 211

なぜ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では:

  1. Module – 大きな概念のまとまり

  2. Class – 具体的な形

  3. Method – 実際の行動

この3段階を超えると、

一般の学習者にはあまりにも複雑になる。

だから言語設計自体が

“人が理解しやすい構造”を追っているのだ。

Databaseも同じ。

  1. Database – 大きな保存空間

  2. Table – 分類された引き出し

  3. Record – 実際に保存された値

4段階に分解してしまうと、

逆に管理が複雑になり、

脳はそれを一つの単位として受け入れにくい。

つまり、世界の多くのシステムは

“人が理解しやすいオリジナルUX”を追っている。


宇宙は3次元であり、人間の思考も3次元的である。

面白いことに

物理学者たちが言うには、

“3次元空間は生命が安定して存在できる最小次元である。”

4次元ならば

重力法則が崩れ、

惑星が安定した軌道を維持するのが難しい。

2次元ならば

生命が複雑な構造を持つのが難しい。

3次元は

宇宙が安定して維持される

微妙な次元である。

プログラミングの概念も

すべて3段階構造になっている理由は、

おそらく私たちがこの宇宙の法則に従って

ツールを作っているからかもしれない。


結論: 3depth構造は‘私たちが理解し、創造できる最大効率単位’だ

  • あまり浅くなく

  • あまり深くなく

  • 直感的に把握でき

  • 拡張も可能で

  • システム全体を立体的に把握できる

最も理想的な深さはまさに3depthだ。

だから世界の多くは

本能的にこの構造に従っている。

そしてプログラミングは

人間の思考を拡張するツールであるため、

当然、人間の思考構造と最もよく合う

3段階を基に設計されている。


だから開発者になるということは‘3段階構造を扱う人間になる’という意味だ

  • 大きな概念を把握し

  • その中で構造を作り

  • 個々の要素を正確に扱うこと

これがまさに開発者の思考だ。

世界が複雑に見えるが

実際はほとんどが3段階構造の繰り返しに過ぎない。

それを理解すると

プログラミングも、データも、ウェブも

急に単純で明確に見え始める。

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Get notified of new posts

We'll email you when Bamchi Blog publishes new content.

Your email will only be used for new post notifications.