Skip to content

第 3 章 编程中的模型思维

我们经常会看到某些人工智能产品的介绍中,关于 XXX 模型的介绍,听起来非常高端。我们不禁会问,到底什么是模型?有一次,在培训中,有人问到了这个问题,大家对模型的阐述非常复杂。我想到了一个简洁的比喻,于是让一位朋友使用手指算出 3+4=7,于是我说在这个场景下手指就是模型。

模型,是人类重要的思维工具,在历史长河中不亚于火的使用。历法是一种认识时间周期和气象变化的模型,通过 24 节气可以描述四季并指导农业生产;太极是阴阳家和道家认识世界的思维模型,通过阴阳描述了事物的两面,建立了朴素唯物主义的辩证体系;"君君臣臣父父子子" 的儒家社会模型,建立了相对稳定的封建社会。

认识世界和改造世界是我们每个人的日常活动,但是世界太复杂了。股神巴菲特的合伙人查理芒格说,我们必须在头脑中拥有一些思维模型,通过模型来认识世界。现代社会中经济学、社会学模型就更多了,波特五力模型、金字塔、四象限、2-8 定律等模型被各种培训和咨询活动广泛使用。

我相信几乎每一个程序员都听说过 "编程思维",但是又没人敢说自己已经掌握了 "编程思维",甚至说不清 "编程思维" 是什么。我们编写应用程序时,每个人都有自己一套方法来设计软件,但是随着需求的不断变化,程序的逻辑会慢慢变得混乱,不再简洁。

计算机科学和软件设计慢慢变成了哲学化、玄学化,并衍生出很多形而上的概念,这是因为计算机科学体系变得过于复杂造而成的。计算机科学是一门实践科学,计算机无非就是一台由半导体组成的电器而已,那么也可以通过模型理解计算机科学并指导编程。

从影响计算机科学建立的基本模型来看,有图灵模型、冯诺依曼体系、TCP/IP 网络模型等;从应用程序设计上来看有 RBAC、MVC 模型等;从业务设计上来看有具体业务领域的模型,比如电商、SNS 等。

业务设计上往往没有建立起特定的领域模型,这是我们架构腐化和软件开发困难的关键原因。从业务领域建立好模型,并指导代码实践,这就是 "编程思维"。

Released under the MIT License.