我们的身体构造是严格按照DNA来组织的。而DNA的编码正如程序的编码嵌套一样,手是由好几个部分组成的,而每个不同的部分又可以分成很多很小的部分,正如不断嵌套的函数,每个函数可以由多个不同的函数组成。就像俄罗斯嵌套瓷娃娃,也像我们世界的组成方式。实际上我们世界是由一些最基本的物质组成的,就像计算机中最原始的二进制编码,然后往上是汇编语言,高级程序语言,然后组成过程、函数,函数再形成一个个对象。这就好比基本的物理粒子组成一个复杂的人。再举一个例子,我们的知识瀚如烟海,因此我们将知识写成一本本的著作,然后给书添加章节和目录,然后再按书名添加书目,再按类别整理成一块块的种类。由此想到了:任何东西和事物都是由这种从大到小、从粗到细、从简到繁的方式组成的,我们不必从最细粒度去整理和分析,因为最细粒度都是最原始最基本的颗粒,它本身不含更有有用的、冗余的信息。信息本身蕴含的秘密集成在颗粒的组成方式上。如果我们从最细粒度出发,而没有一个框架图的话,会陷入数据的海洋。这些数据我们很难找到其中的规律。而事实上,我们最重要的就是发现这些数据的组成规律。往往是这些组成规则决定了组成后的粒子的功能和属性。是如何组合的,是如何层级嵌套的,这样我们就能站在更高的粒度去观察和分析它,发现它的本质规律。我们在化学的层面上来看物质之间的反应,就像我们将许多函数组成一个个函数或对象后再编码一样,如果从物理粒子层面解释化学反应,就如同将这些一层层函数由外而内代入,写成最细粒度的代码(对于程序员来说,可读性相差了好几个“数量级”!这也解释了为什么越细粒度的代码越难理解,为什么软件界要求提高代码复用程度,高内聚低耦合。因为这样的代码简洁、规范、易懂)。(因此,我们经常反其道而行之,即用函数和类、对象来增加代码的复用程度,这也解释了为什么复杂的化学反应例如燃烧用以物理粒子为单位太复杂而很难解释,当前用大型计算机也无法模拟)。明白这一点后,我发现,无论是在理解事物还是在着手一件工作的时候,都应该注意事物的这种构成性质,从而很好地把握事物的颗粒度。太细,一是陷入了数据的海洋而找不到正确的方向,二是太细颗粒本身不含有更多有用的信息。太粗,则无法深入了解该事物的运行原理和构造方式,如果不能很好理解就不能很好地利用。因此,我们在研究事物(对象)的时候一定要把握一个层次粒度,正如编程时候的合理封装好的接口,在这个层面上
灵感:以人的DNA和计算机代码类比来认识世界。
最新推荐文章于 2023-02-05 23:10:30 发布