为什么我们需要模型

2022-02-08 From 程序之心 By 丁仪

以前我们认为“程序 = 算法 + 数据结构”,后来做了复杂的项目变成“程序 = 控制逻辑 + 业务逻辑 + 数据结构”,现在我们认为“程序 = 模型 + 业务活动”。这个认知的变化对应了“编程开发 -> 架构设计 -> 理解业务”的升华过程。模型在理解业务的行为实践中占据了越来越重要的地位,那么为什么模型如此重要呢?

随着互联网的发展,网络上信息越来越多。信息异化问题在 2000 年被学者提出,在 2006 - 2007 年得到较多关注,在 2009 - 2011 年达到井喷时期,在 2013 年达到顶峰,随之相关研究逐渐减少。信息异化是指信息在生产 、传播和利用过程中,由于受到各种因素的干扰导致了信息生产与信息消费之间的矛盾,使主体丧失了控制信息的能力和原有的内涵,并为信息所奴役、支配。

这里不去讨论广义的信息异化问题,只讨论软件开发相关的现象。软件是人所创造并使用的信息的载体,人是主体,软件是客体。然而大型软件本身的复杂度,使得人自身所创造的对象反过来变为支配、统治和控制人自身的异己的对象。

在面向过程编码的年代,程序是一组对数据进行的操作,通常也会用到复杂的数据结构,但是也仅仅是编写复杂的函数通过预先编排好的执行路径来处理数据。并没有合适的方式来平衡模型与设计,虽然程序也能达到预期效果,但是万事万物的概念与函数、数据结构的联系仍是弱联系。

比如以前写 SMMU 内存映射驱动的时候,很难完整地通过代码描述出 SMMU 本身这个概念,更多地专注于内存分配逻辑,SMMU 与 DMA 的交互也是通过复杂的函数编排来实现。虽然有结构体、函数指针、指针函数能够进行复杂的编排,但是代码本身描绘的是 SMMU 、DMA 的行为编排,而非概念。即便有文档,也很难理解。

面向对象的出现,使得程序员可以认为对象真实地存在于内存之中。对象、类型与概念更加接近。


本文来源:程序之心,转载请注明出处!

君子曰:学不可以已。
《黑匣子思维》
“黑匣子思维”是一种记录和审视失败并从中吸取经验的积极态度。不惧怕面对失败,反而视失败为学习的途径。不会否认过失、推诿责任和想方设法脱身,而会把失败作为样本深入研究。 缺乏从失败中学习的态度、勇气和能力,会对个体或行业带来严重危害。千方百计避免犯错并不是我们的目标,学习如何聪明而有意义地犯错,将每一次失败作为测试我们成绩的机会。
发表感想

© 2016 - 2023 chengxuzhixin.com All Rights Reserved.

浙ICP备2021034854号-1    浙公网安备 33011002016107号