是读书还是思考Artigeek

《系统化思维导论》读书分享会

2015-05-31  本文已影响503人  Feiiiii

很多人反映《系统化思维导论》非常难读,但其实这本书非常有用,它旁征博引,提出一些广泛的原则,适用于生活的方方面面。

译者王海鹏老师为大家进行分享。

PPT 上面的封面图片是一片湿地,湿地就是环境系统的一部分。我们以前对环境没有概念,尤其是在大跃进的时候,麻雀甚至被定义为“四害”。到了八九十年代,人们才慢慢意识到环境的重要性,政府提出了“退耕还林”的口号。这就是系统化思维的一个方面。

我们不能孤立的来看任何一件事,要系统的、大局的去看看待事物。

【我们面临的复杂问题】

我们的世界非常复杂,不如初看上去那么简单。
源于芒德勃罗一个非常简单的分形几何规则,每一个小球放大,和最初看到的图形是一样的。

【化简】

牛顿,三棱镜的射散实验。
牛顿得出的天体运动理论,其实是一个重要的化简过程。牛顿在处理天体运行的过程,就做了巨大的简化——他只考虑了两个天体之间的相互作用,由于空间的关系,他所做的简化就显得非常合适。但在超出其假设前提的情况下,牛顿的解释就会有偏差。

【困难】

大家都看过《三体》,三个物体在互相作用的情况下,在数学上是无法得出最终答案的。数字化世界中,我们可以算出模拟模型,但是在初始值变化的情况下,得出的解仍会出现问题。

【热力学】

气体与固体不同,随着科学的演进,许多科学家对于气体进行了许多深入的研究。随着热力学的诞生和分子研究的深入,分子之前的碰撞和相互作用要求科学家们抛开牛顿之前的简化方法,运用更为复杂的方法来研究热力学和统计物理的相关知识。

热力学利用统计的方法获得了一定研究的成功,因此科学家们希望能把热力学的统计方法应用到更多新的领域,例如大数据等。比较著名的成果就是“大数定理”。

著名的大数定理来自于掷筛子的实践。

“面包掉到地方上的时候,一定是涂果酱的那一面着地。”墨菲定律衍生出了很多类似的说法。做软件的人都知道,系统是一定会崩的。就如同携程的例子一样,“可能发生问题的,就一定会出问题”。

【类比】

“人生就像一盒巧克力,你永远不知道下一块是什么味道。”
研究系统的时候,我们经常会采用类比的方法,用来表达抽象的概念。
每个人的类比方式和他的生活方式、思维模式有关。

【抽象规律】

丹麦天文学家第谷花了三十多年收集行星的运行,在他去世之后,他的弟子开普勒接手了他老师的研究工作,对“大数据”进行分析,形成了“开普勒三行星定律”。通过大量的数据分析,人们希望能够发现一些抽象的规律。

沃尔玛很早就开始做数据收集和挖掘。通过对数据的分析,沃尔玛发现很多有趣的规律,比如啤酒和纸尿布放在一起会比较好卖。这个和数据已经没有任何关系了,但这是通过大量的数据积累和挖掘得来的结果。

【第零定律】
“所有规律都有特例。”

【幻相】
由于科学技术和认知经验的限制,很多时候,人容易被自己的感官所欺骗。
所谓庄周梦蝶,真实和虚拟之间的区别越来越难以定义。

【相对思维】
在做期货交易的人里面,有很大一群人做的就是价差交易,俗称“套利”。这群人信奉的观点就是:“我不承认绝对价值,但我承认相对价值。”

【系统即集合】
系统是看待世界的一种方法。我们在研究系统的时候,最终会采用一些数学形式。最典型的就是经济学领域,人们会运用大量的数学模型来进行一些推论。
数学无对错,落实到具体的应用,则需要对应到正确的数学模型。

【符号无关】
我们在描述一个具体规律的时候,与描述这个规律的符号是没有关系的。

【状态转换】
人总是处在清醒和睡眠两个状态间,进行不停的转换。鉴于模式识别和时间变化,系统的状态会进行转换。

【眼脑互补】
在人类没办法登月之前,人们一直在思考一个问题:地球到底是圆的还是方的?宇航员进入太空,用肉眼看到了圆形的地球,不假思索的就能得出圆形地球的结论。因此,看得越多,想的越少。看的越少,脑补的越厉害,想的就越多。做系统的时候,如果IO特别强,内存和CPU就可以稍弱一些。如果IO不够,那么对内存和CPU就会产生比较多的限制。

【大概率事件】

生鸡蛋到熟鸡蛋,这是一个大概率事件。

从生鸡蛋煮成熟鸡蛋,这是一个大概率事件。从熟鸡蛋变成生鸡蛋,这是个不可能事件。这来自于时间的不可逆性。
测试是为了证明系统在多大的概率之下能够(或者不能够)工作。Windows 在刚出来之时,大约还有8万个 bug 没有解决,在系统的崩溃率基于可接受的范围内和具备一定补救措施的情况下,系统依然能够发布和投入使用。
系统中的大概率事件,会让我们忽略一些小概率事件。这就是所谓的“黑天鹅”。

【函数定义】
Haskell 标志着函数的兴起。函数让人们定义过程,而非对象。
函数可以定义参数、变量,我们可以用函数来表述一个系统,并说明这个系统的状态和哪些变量有关系。

【以史为鉴】
在我们设计系统的时候,我们通常会借鉴之前的历史。

【系统边界】
我们在做系统需求分析的时候,要对系统边界进行界定。当我们在设定一个 API 或者数据接口给第三方使用的时候,便需要进行精心的设计。
例如,最近我一直在研究 ZERO MQ。这是用 lib 的方式存在的,不会占用任何实体服务器。在涉及服务器的集群时候,它提供了很多消息队列的实现模式,对系统架构的设计提供了很多新的模式。对我有很大的启发。

【白盒仿真】
“如果一个生物,它走起来像鸭子,叫起来像鸭子,看起来像鸭子,那么它很有可能是一只鸭子。”
白盒仿真,是用相似的内部结构来模拟一个系统。PC 上的仿真器非常之多,但其应用也有有限之处;在开发环境和测试环境做的测试,都不能完全包括生产环境下可能发生的问题。因此一个强大的运维团队是必不可少的。

【状态空间】
人的计算能力十分有限,只能处理简单的系统。因此所有编程的努力,都是让系统变的更为简单,让人更好上手处理。

【封闭变化】
《失控》里面提到过最终失败的生态圈一号,人们始终没有办法人造一个完整的生态系统。
严格密闭的系统是很难模拟出来的,物理学中定义其为“黑体”。


这仍然是一个有辐射、有光照的开放系统。

从现在的趋势来看,我们的数据都需要以某种形式开放出来。内外联网的需求越来越强烈。所谓的互联网思维,在法律等各个方面,对政府的内网系统产生了巨大的挑战。

【问题来源】
“告诉我问题在哪里,我一定改。”这是程序员的经典问题。
那么问题到底在哪里?是系统内还是系统外?

【细微变化】
非线性系统中,某些细微变化可能会导致剧烈变化。
有个非常经典的例子,中文的“+”和英文的"+"看起来非常类似,但是 unicode 是不同的。有个程序员用 Scala 进行自定义函数的时候,两个加号弄混了,调一个 bug 就调了两个多小时。


建立一个好的系统,需要计算思维、设计思维、系统思维和领导力思维。这四种思维的融会贯通,对任何一个人都非常重要。

2015.5.31 《系统化思维导论》读书分享会

上一篇下一篇

猜你喜欢

热点阅读