为什么是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中:
Module – 大概念的集合
Class – 具体形式
Method – 实际行为
一旦超过这3层次
对于一般学习者来说会变得过于复杂。
因此语言设计本身
遵循“易于人理解的结构”。
数据库也是一样。
Database – 大型存储空间
Table – 分门别类的抽屉
Record – 实际存储的值
如果分成4层次
反而会变得管理复杂
大脑也难以将其作为一个单元接受。
也就是说,许多世界系统
遵循“易于人理解的原始用户体验”。
宇宙是3维的,人类思维也是3维的
有趣的是
物理学家们说,
“3维空间是生命能够稳定存在的最低维度。”
如果是4维
重力定律会破坏
行星难以维持稳定轨道。
如果是2维
生命难以拥有复杂结构。
3维
是宇宙能够稳定存在的
微妙维度。
编程概念
全部都是以3层次结构
这样设计的原因是,
也许我们正根据这宇宙法则
来创造工具。
结论: 3depth结构是‘我们能够理解和创造的最大效率单位’
既不太浅
也不太深
直观把握
可扩展
能够全面理解系统
最理想的深度就是3depth。
因此许多事物
本能地遵循这种结构。
而编程
作为扩展人类思维的工具,
自然以最适合人类思维结构的
3层次为基础设计。
因此成为开发者意味着成为‘处理3层次结构的人’
把握大概念
在其中建立结构
准确处理个别元素
这就是开发者的思维。
世界看起来复杂
但实际上大部分只是3层次结构的重复。
一旦理解了这一点
编程、数据、网页
突然开始变得简单明了。