为什么我们需要模型

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

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

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

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

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

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

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


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

君子曰:学不可以已。
《深入理解计算机系统(原书第3版)》

主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率。此书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境,是这一领域的权威之作。

发表感想

© 2016 - 2024 chengxuzhixin.com All Rights Reserved.

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