為什麼是module-class-method?

编程,数据库,Web 结构的3个阶段的原因和意义。3个阶段的稳定性和直观性。人类思维和宇宙的三维特性。

밤치 37

为什么是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层次,
人类的工作记忆很快就会饱和。

相反,
3层次结构
是“一次性把握信息的单位”。

因此许多学科、工具和系统
自然而然地具有3层次。


在3层次时,编程概念最稳定

在Ruby中:

  1. Module – 大概念的集合

  2. Class – 具体形式

  3. Method – 实际行为

一旦超过这3层次
对于一般学习者来说会变得过于复杂。
因此语言设计本身
遵循“易于人理解的结构”。

数据库也是一样。

  1. Database – 大型存储空间

  2. Table – 分门别类的抽屉

  3. Record – 实际存储的值

如果分成4层次
反而会变得管理复杂
大脑也难以将其作为一个单元接受。

也就是说,许多世界系统
遵循“易于人理解的原始用户体验”。


宇宙是3维的,人类思维也是3维的

有趣的是
物理学家们说,

“3维空间是生命能够稳定存在的最低维度。”

如果是4维
重力定律会破坏
行星难以维持稳定轨道。

如果是2维
生命难以拥有复杂结构。

3维
是宇宙能够稳定存在的
微妙维度。

编程概念
全部都是以3层次结构
这样设计的原因是,
也许我们正根据这宇宙法则
来创造工具。


结论: 3depth结构是‘我们能够理解和创造的最大效率单位’

  • 既不太浅

  • 也不太深

  • 直观把握

  • 可扩展

  • 能够全面理解系统

最理想的深度就是3depth

因此许多事物
本能地遵循这种结构。

而编程
作为扩展人类思维的工具,
自然以最适合人类思维结构的
3层次为基础设计。


因此成为开发者意味着成为‘处理3层次结构的人’

  • 把握大概念

  • 在其中建立结构

  • 准确处理个别元素

这就是开发者的思维。

世界看起来复杂
但实际上大部分只是3层次结构的重复。

一旦理解了这一点
编程、数据、网页
突然开始变得简单明了。