代码里的世界观之数据和代码的关系

156 篇文章 17 订阅
98 篇文章 7 订阅

每个程序的运行过程,都可以比喻成弹珠穿越迷宫的游戏.

有一个竖直方向的复杂迷宫,上面有若干入口,底下有若干出口,里面的路径连接很复杂.我们让众多大小不一,形状各异的弹珠从迷宫上面的入口顺着迷宫管道往下落,直到出口。弹珠从入口跑到出口的过程,就相当于程序运行的过程。

实际上,真实模型会更复杂一些。入口并不是弹珠的唯一来源,有的管道自己会产生弹珠往下落,此外,在运行过程中,有的弹珠会消失在管道里,永远不在出来。如果要对应多线程,迷宫模型也要相应的扩展,在前后叠加多个迷宫,由平面变成立体,迷宫相互之间还有桥梁连接,路是通的。

迷宫入口的弹珠,就是程序的原始数据,这些弹珠在下落的过程中会被加工,他们可能会变大变小,还可能分裂或组合,最终走出迷宫的弹珠,则是呈现给用户的最终数据,这里的迷宫管道,就是程序的代码结构。

正如水由氢和氧元素构成,程序世界则由数据和代码构成。

数据和代码的关系:

数据是根本目的,代码是手段,代码永远是为数据服务的。

数据分为输入数据和输出数据,代码是将输入数据转化为输出数据的工具,用户最关心的永远是最终数据是不是他想要的,以及能否在规定的时间内得到,代码是如何实现的,并不是用户的关心点。

什么样的数据,决定了会有什么样的代码,有的系统处理的数据量小,有的系统处理的数据量大,两者代码复杂度肯定不一样。

有的系统虽然数据量大,但数据主要躺在数据库里,像一潭死水难得动弹,有的系统则不停的处理大并发数据,它们的代码复杂度肯定也不一样。

有的系统输入数据量大,输出数据量小,比如人工智能,系统可能要分析近百万张猫的图片,才能使别出一只新的猫,这种系统最大的难点主要是分析这些输入数据是否合理和准确。

有的系统输入数据量小,输出数据量大,比如游戏,玩儿家的输入都是有限的,而系统要向玩儿家战士一个虚幻的世界,这种系统最大的难点是输出数据是否贴合用户的心意。

有的系统,并非所有的输出数据都很重要,所以产生一些BUG,用户是可以忍受的,但有的系统,所有的数据处理必须万无一失,可能业务逻辑并不复杂,但要求无比复杂且精确的代码。

总之,和什么样的数据打交道,会最终决定存在什么样的代码,而代码不断的升级修改,永远是为了匹配数据的要求或者追逐数据的变化。

数据是目的,代码是手段。


结束!

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值