在日常工作中,我们时常会碰到这样的情况,有的人讲一件事情的时候逻辑非常混乱,说了很多事情的罗列,却说不到重点。有的人写代码,本身的业务逻辑并没有多复杂,但呈现出的代码却像一堆线团,混乱不堪,无法理解。这些都是典型的缺少结构化思维的表现,导致我们在写作(包括写代码)、沟通、表达的时候,思维混乱,逻辑不清。
什么是结构
结构可以说是万物之本。大到宇宙星系,小到尘埃颗粒,任何事物都有其特定的结构,这些事物也是通过其特定的结构来体现其存在的价值和意义。
在系统论中,系统是处在一定环境下各组成部分的整体,我们把这各个组成部分,称之为系统的要素。很显然,系统不只是要素的简单加和,而是有什么内在的东西实现了各要素的普遍联系。我们就把这种各要素的组织形式(要素之间的关系)称之为结构。
系统的性质是由结构决定的。要素的内容是不稳定的,可能随时会被替换。就像忒休斯之船,虽然船的木板被换掉了,但只要船的结构没有变,其仍然是忒休斯之船;中国的两千年封建历史也是一样,皇帝(要素)一个接一个的换,但是本质上,其背后的皇权剥削制度没有变,旧 会的结构没有变,所以皇帝的更替,并没有改变封建 会的本质。
我们通常说的“结构性问题”,就是指那些底层的、难以改变的根本性问题。经济上的结构性问题就是作为经济这个系统的结构的经济制度,分配制度和所有制等等出现了问题。
在零售通期间,我做过一个价格的项目,当时的想法是试图通过价格管控,来让平台商品的价格更有竞争力。然而深入思考不难发现,价格只是表象问题,在冰山之下,深层次还是结构问题——即在相当长时间内,我们没办法改变品牌商现有分销渠道结构,不能让渠道更扁平化,不能提升供应链效率。只是一味的盯着价格是注定很难成功的。
换一种方式,让你同样记住下面的这20个数字,再试试能否记住br>
为什么是金字塔结构
说到结构化思维,就不得不提到结构化思维的圣经——芭芭拉·明托的《金字塔原理》。这本书我反复读过多遍,在业界也有很好的口碑,美团王兴说:“仔细认真读完这本书,是员工在美团能否成功的基本功。它是美团四大名著之首,也是美团能力跃迁,职级晋升的官方推荐必读书籍,它就是《金字塔原理》”
上文已经说过,结构化思维很有用,但为什么是金字塔结构呢和我们大脑的思维过程有关,人类很早以前就认识到,大脑会自动将发现的所有事物以某种秩序组织起来。基本上,大脑会认为同时发生的任何事物之间都存在某种联系,并且会将这些事物某种逻辑模式组织起来。
可以做一个实验,观察下面的图示,你看到了什么br>
我之前有一个马拉西亚的博士朋友,他有一项“超强大脑”的技能,就是可以用10分钟记住一整副打乱的扑克牌。我很佩服他有这样非凡的记忆力。问他是怎么做到的告诉我,并不是因为他很厉害,他只是把扑克牌进行了“图像化”,然后再编一个故事,把这些“图像”联系起来,比如J这个牌是一把伞,8是个胖子,这样8J在他的故事里,就变成了一个打伞的胖子。通过这种逻辑关联,任何普通的人通过训练,都可以记住打乱的52张扑克牌。
这个例子,再一次验证了逻辑关系的重要性,“有逻辑”和“没有逻辑”对我们大脑的理解和记忆起着至关重要的作用。
同样,当你在听别人讲话、看文章、阅读代码的时候,也会发生类似的组织思想的现象。你会将同时出现的或位置相邻的几个思想相联系,努力用某种逻辑模式组织他们。这种逻辑模式必定是金字塔结构的,因为只有金字塔结构才能够满足大脑的两个需求:
- 概念不能多:大脑一次记忆很难超过7个思想、概念或项目。
- 有逻辑关系:大脑容易记住有逻辑关系的事物。
也就是说,如果我们能按照金字塔的结构准备我们的演讲、写文章、写代码,因为其满足我们大脑处理信息的特点——概念不能多,有逻辑关系,我们的听众和读者会更容易理解我们要表达的思想。对应到我们工程领域,即满足金字塔原理的代码,其可读性和可理解性会极大的被增强,代码也是一种表达,很多人以为代码是写给机器执行的,实际上,代码是写给人读的,只是偶尔会被机器执行。
这里,我们先来看一个简单案例,感受一下金字塔的作用。假如你要出门,你老婆说家里冰箱空了,顺便买一点牛奶、鸡蛋和苹果回来。你说:“好的,还需要别的吗她说:“咸鸭蛋和橘子也可以买一点。”当你刚要出门的时候,她说:“好久没有吃葡萄了,如果能带点葡萄就更好了。”
-
寻找逻辑关系
在上面的结构里面,我们首先对需要采购的物品进行了归类分组,这里的逻辑关系是葡萄、苹果、橘子是一类的,都属于水果;牛奶、鸡蛋、咸鸭蛋是一类的,都属于蛋奶。这种分类是为了我们接下来抽象概念做准备,并且是符合逻辑认知的。 -
概念不能多
找出逻辑关系,分组归类只是结构化的第一步,接下来我们还要对分组进行抽象概括,提升一个抽象层次,将原来大脑需要处理的6个概念(葡萄、苹果、橘子、牛奶、鸡蛋、咸鸭蛋),减少为2个概念(水果、蛋奶)。由于处于较高层次上的思想总是能提示其下面一个层次的思想,因而也更容易记住。
可以说,我们所有的思维过程都离不开这样的分组(分析)、概括(综合),以将大脑中的信息组成一个有互相关联的金字塔组成的巨大金字塔群。我们平时说的构建自己的知识体系,实际上就是在构建这个巨大的金字塔结构。
实际上,我们平时使用的思维导图,也是一种金字塔的结构化思维,只是其展现形式不一定是上下结构的金字塔,也可能是左侧分布、右侧分布、或者左右分布的,不管其形状如何,只要它满足从“中心主题”出发,具有层次树状结构,都属于金字塔结构的范畴,都应该满足搭建金字塔结构的逻辑要求。
金字塔结构里的逻辑
逻辑是指对象之间的关系,这个关系可以是演绎关系、因果关系、空间关系、程度关系、并列关系、类比关系等等。所谓的“有逻辑”,就是这个“关系”是合乎理性的,道理是通顺的。逻辑是我们认知的基础,在结构中起着至关重要的作用。好的结构,离不开清晰、有效的逻辑,只有理清逻辑关系,才能正真的化繁为简,否则即使你搭建了结构,依然逃不脱那一片混沌。
空间顺序
空间顺序,是一种化整为零的分解,比如对公司组成部门和地理位置的分解。再将整某个整体(不论是客观存在的还是概念性的整体)划分为不同的部分时,你必须保证划分后的各部分符合以下要求:
- 各部分之间相互独立(mutually exclusive),没有重叠,有排他性。
- 所有部分完全穷尽(collectively exhaustive),没有遗漏。
这两个要求简称是MECE原则。
程度顺序
程度顺序,也称为重要性顺序。是你对一组因为具有某种共同特点而被聚集在一起的事务所采用的顺序。如:3个问题,3个原因,3个因素等。在为事物分组时,你可能会说:“这家公司存在3个问题。” 这时,你的大脑自动将这个3个问题和其它问题
隔开。也就是说,这个3个问题是你认为这个公司最严重、最迫切需要解决的问题,于此同时,公司可能还存在很多其它的问题,你只挑选这3个,是因为这3个最重要。在排序的时候,最好是先重要后次要(first thing first),先强后弱。
另外,我们还可以用“疑问解答”的方式来自上而下的构建我们的结构,这样做的好处是,一方面可以通过设置悬念抓住听者的注意力,另一方面这种不断问“为什么的方式,也是在帮助我们更加深入的理解问题,让我们的论证更加有说服力。
比如你要给大家分享“猪应当被当作宠物来养”,听众肯定会很疑惑“为什么猪可以当宠物呢,你接着说“猪很漂亮,所以可以当宠物”,这回答了前面的疑问,当又引发了大家新的疑问:“猪怎么能漂亮呢,然后你说“猪很肥”,大家的疑问更大了:“肥为什么还漂亮呢 这样一步一步往下走,紧扣着听众的好奇心,这种先抛结论的倒序方式,通过提出疑问——回答疑问的悬念方式自然是非常有吸引力的,于此同时,因为你对对方关心的问题进行了一个一个的解答,其说服力也会比较高。
商品是电商系统中最重要、也是最复杂的业务之一。在发布商品的时候,我们需要组装offer(商品)的各种参数,因为offer需要的信息特别多,导致组装offer的代码也特别长。随着时间的推移,还不断有新的信息在往这个方法中添加。如果把这个代码类比成文章,这是一篇没有章节、没有段落的文章,其可读性和可维护性可想而知。
面对这些零散的“素材”,我们有必要对其进行归纳整理,构建一个更加清晰的结构。通过简单归纳,我们不难发现商品信息主要包括商品核心信息、商品描述信息、产品属性信息、销售属性信息、系统属性信息、商品扩展信息等。其中,扩展信息又可以进一步拆分成产品信息扩展(比如,是否进口)、销售信息扩展(比如,销售单位规格)、供应链信息扩展(比如,仓库类型)等等。形成一个如下的结构:
同样的业务逻辑,对比两种不同的实现方式,不难看出结构在里面起到的重要作用。
上下结合
自上而下的分解,自下而上的归纳,二者不是你有我无的关系。更多的时候,是两个方法都会用到,构建结构的过程,不是一次性的从上到下,也不是一次性的从下往上,而是上上下下,来来回回,反复修改,反复优化的过程。
了解我的人都知道,我一直在致力于控制软件复杂度,写过一篇文章——一文教会你如何写复杂业务代码,文章的核心思想就是提出了通过自上而下的结构化分解+自下而上的抽象建模,通过上下结合来治理复杂业务的方法论。实际上,这就是典型的结构化思维,是演绎法和归纳法的完美结合。天下的道理都是相通的,结构化思维本来是教人清晰表达、写作的,然而同样的道理在软件设计和代码实现中,同样适用。
自上而下的分解可以帮助我们更好的理清业务逻辑,更清晰的表达业务过程,这种分解非常有必要,只是太面向过程了,导致代码的复用、扩展和语义表达能力偏弱;因此,我们还需要自下而上的抽象建模,帮助我们提升代码的复用性、扩展性和业务语义表达能力。

我记得有一次在分享的时候,有一个同学问我:“分解必须是自上而下,建模必须是自下而上的吗 当然不是,在分解之前,我们可能已经初步构建了模型,同样,在建模的同时,我们也可以同步实施业务过程分解。这两个步骤是相辅相成的,是螺旋式上升的过程。步骤可以交替进行、也可以同时进行。随着我们对问题域理解的更加深入,我们很有可能在某个时间点,重构我们的结构和模型。分开介绍自上而下和自下而上的方法,是为了说明演绎思维和归纳思维的区别,至于在使用的时候,通常都是上下结合一起使用的。
更多有用的结构
通过前面的介绍,我相信你在学习结构化思维的同时,应该也感受到了思维框架在结构化中的作用,比如2W1H就是非常有用的框架,因为它涉及到大部分问题的本质——“是什么”,“为什么”,“如何做”。
5W2H也是解决一般问题非常有用的思维框架,5W2H分别代表Why、Who、When、Where、What、How和How much,很多问题都可以拆解成这7个要素,如果你知晓这个结构,在分析问题的时候,就比不知道这个结构的人要更加全面和体系化。知晓框架的好处是,别人的难题,只是你的“填空题”,别人
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!