代码里的世界观之数据和代码的关系
每个程序的运行过程,都可以比喻成弹珠穿越迷宫的游戏.
有一个竖直方向的复杂迷宫,上面有若干入口,底下有若干出口,里面的路径连接很复杂.我们让众多大小不一,形状各异的弹珠从迷宫上面的入口顺着迷宫管道往下落,直到出口。弹珠从入口跑到出口的过程,就相当于程序运行的过程。
实际上,真实模型会更复杂一些。入口并不是弹珠的唯一来源,有的管道自己会产生弹珠往下落,此外,在运行过程中,有的弹珠会消失在管道里,永远不在出来。如果要对应多线程,迷宫模型也要相应的扩展,在前后叠加多个迷宫,由平面变成立体,迷宫相互之间还有桥梁连接,路是通的。
迷宫入口的弹珠,就是程序的原始数据,这些弹珠在下落的过程中会被加工,他们可能会变大变小,还可能分裂或组合,最终走出迷宫的弹珠,则是呈现给用户的最终数据,这里的迷宫管道,就是程序的代码结构。
正如水由氢和氧元素构成,程序世界则由数据和代码构成。
数据和代码的关系:
数据是根本目的,代码是手段,代码永远是为数据服务的。
数据分为输入数据和输出数据,代码是将输入数据转化为输出数据的工具,用户最关心的永远是最终数据是不是他想要的,以及能否在规定的时间内得到,代码是如何实现的,并不是用户的关心点。
什么样的数据,决定了会有什么样的代码,有的系统处理的数据量小,有的系统处理的数据量大,两者代码复杂度肯定不一样。
有的系统虽然数据量大,但数据主要躺在数据库里,像一潭死水难得动弹,有的系统则不停的处理大并发数据,它们的代码复杂度肯定也不一样。
有的系统输入数据量大,输出数据量小,比如人工智能,系统可能要分析近百万张猫的图片,才能使别出一只新的猫,这种系统最大的难点主要是分析这些输入数据是否合理和准确。
有的系统输入数据量小,输出数据量大,比如游戏,玩儿家的输入都是有限的,而系统要向玩儿家战士一个虚幻的世界,这种系统最大的难点是输出数据是否贴合用户的心意。
有的系统,并非所有的输出数据都很重要,所以产生一些BUG,用户是可以忍受的,但有的系统,所有的数据处理必须万无一失,可能业务逻辑并不复杂,但要求无比复杂且精确的代码。
总之,和什么样的数据打交道,会最终决定存在什么样的代码,而代码不断的升级修改,永远是为了匹配数据的要求或者追逐数据的变化。
数据是目的,代码是手段。
结束!
代码里的世界观之数据和代码的关系相关推荐
- 代码里的世界观——通往架构师之路
随笔分类 - <代码里的世界观> 用最直接的大白话来聊一聊Java中的反射机制 案例1 张牙舞爪的if-else 复制代码 if(type == "mp4"){isVa ...
- 对编写的代码进行单元测试_编写数据访问代码测试–单元测试是浪费
对编写的代码进行单元测试 几年前,我是为我的数据访问代码编写单元测试的那些开发人员之一. 我正在孤立地测试所有内容,我对自己感到非常满意. 老实说,我认为自己做得很好. 哦,男孩,我错了! 这篇博客文 ...
- gdb: 疑惑1:info symbol为何可以看到atomicity.h的代码,但是代码里确实没有看到相关的代码
(gdb) info line *0x33fd12b0 Line 49 of "/usr/include/c++/4.8.2/ext/atomicity.h" starts at ...
- think php批量删除代码,ThinkPHP实现批量删除数据的代码实例
ThinkPHP实现批量删除数据的代码实例 ThinkPHP实现批量删除数据原理很简单,只需在模板页面里面写上这样传过来就是一个数组,action的删除函数del()如下: /** **删除函数支持删 ...
- One order search的框架代码里,硬编码了要去取Interaction object相关的数据
One order search的框架代码里,硬编码了要去取Interaction object相关的数据,见下图214行方法:get_io_info:里面有个开关: 这个开关的配置地址: 我把这个功 ...
- Python把数据写进html的表格代码里,收件人显示表格
获取数据之后,如何能把数据写进HTML的代码里,并直接发送给邮箱 import smtplib from email.mime.text import MIMEText import os,datet ...
- python数据写入表格生成图片_python在word文档里插入图片和表格实例代码演示
# -*- coding: UTF8 -*- from docx import Document from docx.shared import Pt doc = Document() # 文件存储路 ...
- 天一冷,就想大口吃肉,爬取一座城市里的烤肉店数据(附完整Python爬虫代码)
前言 天一冷,就想吃肉,贴好秋膘才能好过冬.对于肉食主义者,吃肉简直幸福感爆棚!特别是烤肉,看着一块块肉慢慢变熟,听着烤盘上"滋滋"的声响,这种期待感是任何其他食物都无法带来的.如 ...
- 谁还不爱吃肉?现在就教你采集一座城市里的烤肉店数据(附完整代码)
文章目录 前言 正文 准备环境 了解爬虫最基本的思路 一. 数据来源分析 二. 代码实现过程 代码实现过程 发送请求 2.获取数据 3.解析数据 4.解析数据 5.翻页 运行代码得到数据 完整代码 前 ...
最新文章
- opengl地球贴纹理_一文看懂材质/纹理 Material, Texture, Shading, Shader 的区别
- 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
- 来看看CDN网络安全防护的方案
- html下拉列表框设置两个,怎么使用HTML option标签添加两个value
- scrapy爬虫值Items
- 在一个div里,列表样式图片进行float,实现水平排序
- JSP的9个内置对象-application
- onblur/onfocus 失去焦点 获取焦点
- 数据库课设 - 机票预订系统
- 必修三计算机选修三知识点总结,高中生物必修一、必修二、必修三、选修三知识点总结(人教版).pdf...
- 用origin画重叠柱状图 - 三维变化
- 怎么看PLC梯形图?
- CHM文档编辑制作及电子书的相关问题 - txfast的日志 - 网易博客 http://txfast.blog.163.com/blog/static/40536042200832065417/
- 最燃黑客情报官薛锋:端起AK伏特加,代表人民把坏人抓
- Echarts legend组件 图例默认选中状态
- uni-app本地打包配置过程中出现的问题
- 自然语言处理--信息模型
- 【YBT2022寒假Day8 A】染色计划(Tarjan)(线段树优化建边)(树链剖分)
- 社交电商跟传统电商有什么区别?近来发展得如何?
- 二阶常系数齐次线性微分方程的解法