为什么我们需要模型

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

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

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

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

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

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

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


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

君子曰:学不可以已。
《计算机组成原理》

从计算机组成和结构的有关概念、计算机的发展历程及存储程序计算机开始讲起,介绍了计算机系统的组成和体系结构的基本概念,讨论了数据在计算机中的表示方法和运算方法。讲解ISA的基本概念,并以ARM指令集为例介绍了ISA设计时需要考虑的主要问题。介绍了设计控制器的两种经典方法—微程序与组合逻辑,详细讨论了流水线技术、影响流水线性能的因素及一些可行的解决方法。

发表感想

© 2016 - 2024 chengxuzhixin.com All Rights Reserved.

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