6

欧雷说:「模块化就是分治或者说还原论在人造物方面的应用——这是处理复杂问题的基本手...

 3 years ago
source link: https://ourai.ws/murmurs/1f52j5fi0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

欧雷说:「模块化就是分治或者说还原论在人造物方面的应用——这是处理复杂问题的基本手段,同时也在软件设计方面蒙蔽...」

欧雷
发表于 2021-05-07 13:00

模块化就是分治或者说还原论在人造物方面的应用——这是处理复杂问题的基本手段,同时也在软件设计方面蒙蔽了人的双眼,让人无法跳脱出「模块」之外去思考如何进一步解决复杂问题。

我们在做软件设计或写代码时,会「理所当然」地认为一个较大的模块是由多个较小的模块所构成,如:一个函数内部调用多个函数;一个组件是由几个更原子的组件封装而成——为什么一个更大的模块非得是由其他模块集成而来?

想想,一个「人」是由「脏器」或「骨骼」集成来的吗?「脏器」或「骨骼」是由「细胞」集成的吗?大多人看待这个问题的角度,估计是如此认为,几分钟之前的我也是,但我现在换了个角度——

「人」是由无数个不同类型的「细胞」紧挨着(实际细胞间可能有空气等)构成的,只是「恰巧」有些许同类细胞聚集在一起形成了「脏器」或「骨骼」还有「肌肤」等。

可以想象下,用五颜六色的画笔分别用无序和有序两种方式点无数个点,前者呈现出来的是杂乱无章的点,后者则会形成图形——但它们本质上就是五颜六色的点。

同类的细胞聚集而成的「脏器」或「骨骼」等形成了一个复杂的系统,各个「细胞」之间通过某种方式进行「通信」、「反馈」并达成「共识」,就像具有一定程度的「智能」一样。

如果程序能够摒弃「模块集成」,模块间通过什么机制可以相互「通信」、「反馈」并达成「共识」,我认为这才是真正解决复杂软件系统的途径。

还原论的以大化小并逐个击破的思路并不能真正解决问题,关注并找到系统各个个体间的作用关系才是正道——这也是复杂性的魅力所在!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK