为什么多加一层(抽象)可以解决任何问题
2019-09-30 本文已影响0人
i5possible
多加一层的故事
在计算机领域,有这么一句话:遇到问题不会解决的时候,多加一层就可以解决。例如:
- 已有两个实体的数据表,一对多的关系可以通过在一张表中增加另一张表的主键来解决,那么多对多的映射关系如何表示?增加一个mapping表。
- 一边是消息的使用方,一边是消息的处理方,如何解决两边处理速度不完全匹配的问题?在两者之间加一个消息队列,可以削峰平谷。
- 如何解决日益增加的前台需求和笨重落后的后台系统?加一个中台系统,可以有业务中台、技术中台、数据中台等。
- 像神经网络,其实是也是使用更多的层次,来对输入进行不同的处理,通过多个层次来避免拟合不足的问题。从以上的一些例子可以看出,虽然这句话看起来是有一些过分,但多加一层确实能解决非常多的问题。
背后的原理
为什么多加一层就可以解决这么多问题呢?因为在问题变得复杂的时候,往往是有一些隐含的抽象概念,夹杂在已知的概念中,原来的模型、架构可能就无法很好的解决这些隐含的复杂性。而多加一层,可以将抽象的概念具体化,把抽象的概念定义清楚,具象化处理。将概念具象化之后,我们就可以建立更加完善的模型来描述整个系统。如mapping表,消息队列、中台、神经网络中的卷积层,都是可以帮助我们描述解决问题的具象化概念。
什么时候需要多加一层?在现有的情况下,无法准确反映实际情况的时候,就需要考虑是否需要加一层,来描述存在的关系等抽象概念。这个方法在领域驱动设计中有提到,在领域建模过程中也是需要重点关注的。
实际生活中场景
在计算机领域之外,具象化抽象概念也是一个非常实用的方法。很多时候,我们为了能够更好的交流,更方便的解决一些问题,都可能会创造出来一些概念来表述自己的认识。从最开始的IQ,后来的EQ,FQ等,都更好的将一些抽象的概念定义了出来,甚至创建了一些量表进行测量。
在一些不同的领域,如篮球等,会使用如能力六维表这样的图,来表示一个球员的综合能力。想要清楚的描述、对比两个球星的能力可能需要大段的描述,甚至举例论证,而将球员各方面能力通过最重要的几个数据,转化成一张图的时候,对比起来就容易多了,尤其是将两个人的能力图重合起来的时候。这是具象化的一些实例,其实也是图形(数字)化展示的优势。
在你的生活周边,或者你所学的专业、所处的行业中,又有哪些被具象化的抽象概念呢?