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

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

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

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

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

数据和代码的关系:

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

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

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

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

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

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

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

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

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


结束!

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

  1. 代码里的世界观——通往架构师之路

    随笔分类 - <代码里的世界观> 用最直接的大白话来聊一聊Java中的反射机制 案例1 张牙舞爪的if-else 复制代码 if(type == "mp4"){isVa ...

  2. 对编写的代码进行单元测试_编写数据访问代码测试–单元测试是浪费

    对编写的代码进行单元测试 几年前,我是为我的数据访问代码编写单元测试的那些开发人员之一. 我正在孤立地测试所有内容,我对自己感到非常满意. 老实说,我认为自己做得很好. 哦,男孩,我错了! 这篇博客文 ...

  3. gdb: 疑惑1:info symbol为何可以看到atomicity.h的代码,但是代码里确实没有看到相关的代码

    (gdb) info line *0x33fd12b0 Line 49 of "/usr/include/c++/4.8.2/ext/atomicity.h" starts at ...

  4. think php批量删除代码,ThinkPHP实现批量删除数据的代码实例

    ThinkPHP实现批量删除数据的代码实例 ThinkPHP实现批量删除数据原理很简单,只需在模板页面里面写上这样传过来就是一个数组,action的删除函数del()如下: /** **删除函数支持删 ...

  5. One order search的框架代码里,硬编码了要去取Interaction object相关的数据

    One order search的框架代码里,硬编码了要去取Interaction object相关的数据,见下图214行方法:get_io_info:里面有个开关: 这个开关的配置地址: 我把这个功 ...

  6. Python把数据写进html的表格代码里,收件人显示表格

    获取数据之后,如何能把数据写进HTML的代码里,并直接发送给邮箱 import smtplib from email.mime.text import MIMEText import os,datet ...

  7. python数据写入表格生成图片_python在word文档里插入图片和表格实例代码演示

    # -*- coding: UTF8 -*- from docx import Document from docx.shared import Pt doc = Document() # 文件存储路 ...

  8. 天一冷,就想大口吃肉,爬取一座城市里的烤肉店数据(附完整Python爬虫代码)

    前言 天一冷,就想吃肉,贴好秋膘才能好过冬.对于肉食主义者,吃肉简直幸福感爆棚!特别是烤肉,看着一块块肉慢慢变熟,听着烤盘上"滋滋"的声响,这种期待感是任何其他食物都无法带来的.如 ...

  9. 谁还不爱吃肉?现在就教你采集一座城市里的烤肉店数据(附完整代码)

    文章目录 前言 正文 准备环境 了解爬虫最基本的思路 一. 数据来源分析 二. 代码实现过程 代码实现过程 发送请求 2.获取数据 3.解析数据 4.解析数据 5.翻页 运行代码得到数据 完整代码 前 ...

最新文章

  1. opengl地球贴纹理_一文看懂材质/纹理 Material, Texture, Shading, Shader 的区别
  2. 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
  3. 来看看CDN网络安全防护的方案
  4. html下拉列表框设置两个,怎么使用HTML option标签添加两个value
  5. scrapy爬虫值Items
  6. 在一个div里,列表样式图片进行float,实现水平排序
  7. JSP的9个内置对象-application
  8. onblur/onfocus 失去焦点 获取焦点
  9. 数据库课设 - 机票预订系统
  10. 必修三计算机选修三知识点总结,高中生物必修一、必修二、必修三、选修三知识点总结(人教版).pdf...
  11. 用origin画重叠柱状图 - 三维变化
  12. 怎么看PLC梯形图?
  13. CHM文档编辑制作及电子书的相关问题 - txfast的日志 - 网易博客 http://txfast.blog.163.com/blog/static/40536042200832065417/
  14. 最燃黑客情报官薛锋:端起AK伏特加,代表人民把坏人抓
  15. Echarts legend组件 图例默认选中状态
  16. uni-app本地打包配置过程中出现的问题
  17. 自然语言处理--信息模型
  18. 【YBT2022寒假Day8 A】染色计划(Tarjan)(线段树优化建边)(树链剖分)
  19. 社交电商跟传统电商有什么区别?近来发展得如何?
  20. 二阶常系数齐次线性微分方程的解法

热门文章

  1. 搜索引擎ElastaticSearch使用
  2. 据说是ORACLE10G的报价,加集群部分,各位确认一下
  3. houdini 简化太阳
  4. left join 索引笔记
  5. FireDAC 学习 - 5:三层,远程提交,公文包模式
  6. 解决GitHub下载速度太慢问题的方法汇总(持续更新,建议收藏)
  7. PDF格式转换器官方免费下载
  8. 高校保研及踩坑经历分享
  9. w7无法訪问计算机上硬盘分区,惠普笔记本win7系统无法调整硬盘分区的解决方法...
  10. 快来看看如何手动搭建自动化部署系统