0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据处理的基本问题

汽车电子技术 来源:玉工讲技术 作者:玉素甫·买买提 2023-02-21 16:12 次阅读

计算机是进行数据处理、运算的机器(有点儿像机电系统中的电动机)。当我们回顾数据管理简史并较深入理解计算机原理后会发现,有两个基本问题就包含在其中, 一是处理的数据在在什么地方,二是要处理的数据有多大 。如果我们能够深刻理解这两点,那么无论从CPU微观世界里还是大数据宏观视角,当前许多热门词的“神秘”面纱很轻松地被我们撕下来。

从数据中心角度看,有个客户想租用IDC的机柜,那么我们也绕不开这两个基本问题,一是放到哪个机房的哪个机柜,二是占用多少个机柜空间。计算机通信也遵循这两条基本问题,当我们读取服务端的数据,需要告诉服务端要读取的值的起始地址和要读取数据的数量,如图1所示。

图片

图1 数据存放示意

1、怎样更好理解软件工程

软件工程是指导计算机软件开发与维护的工程学科。为了让我们能掌握现代化的软件开发方法,需要系统地学习软件工程相关知识(包括:软件工程的概念、原理、技术,经时间考验而证明正确的管理技术、当前的技术方法等等)。但这样学起来,如果没有一定的计算机基础和实践经验,那么这些概念好比教我们如何游泳,但从来不把我们带到游泳池旁下水一样,体会不到软件开发所具有的创新性和灵活性(这也是软件工程与建设工程主要不同之处之一)。关于软件工程主要内容大学教科书目录结构如下图2所示。

图片

图2 软件工程教科书目录

从图2可见,软件工程也跟建设工程一样,以需求为导向,围绕可行性研究、总体设计(土建工程设计图)、详细设计(深化过的施工图)等进行开发(或建设)。同时,通过接口设计来对接其他模块(就像数据中心中电气、暖通、装饰装修衔接一样),开发过程中也有应遵循的相关的流程、准则、标准和规范等。但是从玉工接触数据中心领域后的体会来看,只有多到现场看实物并在脑海里建立基本设备材料和工具的三维模型才能将那些看似“死板无聊”的国家标准规范变成施工过程必须遵循的“法宝”。

总结起来就是软件工程也跟建设工程一样,须到施工现场多看施工工程师们(平时所谓的工人或农民工,但我看来他们只是从事着不同工作而已,也是自己领域的专家)施工过程一样需要自己配备一台电脑,搭建软件集成开发环境(IDE)并多敲代码练习才会领会软件工程真正含义。

自从开辟“软件工程”话题后发现,自己做了一个不自量力开端。虽然工作原因亲历BSS、OSS、Callcenter等不少中大型软件集成项目,但觉得只讲概念和框架还不够。最近这几个月的自学尝试和体验开发过程发现编程也很像学乐器(比如六弦琴)。学音乐天天看乐谱及理论和别人演示还不够,必须自己拿起吉他动手练习才能学会并培养音乐细胞。编程也是,除了看书和理解别人代码,还需要自己动手敲代码,逐步熟悉那些常用的代码并多动手练习通过编程语言语句表达算法才能写出一个程序,借助调试才能逐步明白程序执行过程并与计算机建立连接,让计算机“听懂”我们的“话”,也让自己逐步形成编程思维。

2、编程中的分层思想

实际上,计算机的整个发展过程就是不断引入新的中间层,即所谓的分层思想,举例如下:

(1)计算机的早期,程序都是直接运行在硬件之上,自己负责硬件的管理工作;程序员也使用二进制进行编程,需要处理各种边界条件和安全问题。

(2)后来人们不能忍受了,于是开发出了操作系统,让它来管理各种硬件,同时发明了汇编语言,减轻程序员的负担。

(3)随着软件规模的不断增大,使用汇编语言编程开始变得捉襟见肘,不仅学习成本高,开发效率也很低,于是C语言诞生了。C语言编译器先将C代码翻译为汇编代码,再由汇编器将汇编代码翻译成机器指令。

(4)随着计算机的发展,硬件越来越强大,软件越来越复杂,人们又不满足于使用C语言了,于是 C++JavaC#、Scala、Python、PHP、Javascript、Go、Rust、Dart... 等现代化的编程语言诞生了。

可以看出,计算机的世界离不开C/C++,他们俩构建了计算机虚拟世界赖以生存的最底层。由于运行效率高,C/C++更适合去写那些要求高性能和服务器端运行的系统级软件,如图3所示。

图片

图3 C/C++构建了计算机世界“根”技术生态

同时,图形图像也是这两个语言强项,桌面开发时期的绝对霸主。互联网时代,以B/S架构的Web框架为主,引来的Java的崛起。同时,大数据开发领域Java家族更是傲视群雄,如图4所示。

图片

图4 大数据生态

面对大数据和云计算时代的红利,Python也不甘示弱,通过自己易用、丰富开放的工具包,占领了数据挖掘和大数据分析及云计算基础设施的领域,例如Openstack就是其中的典型案例之一。

3、层次不穷的软件框架和模型

最近几十年,围绕云计算、大数据、人工智能技术不断出现了多种软件框架及模式。同时,作为错过互联网和云计算时代的C/C++语言替代品,为了适应移动互联网和云计算需求,基础底层方面也出现了Go、Rust、Carbon等语言等。面对多种终端生态,也许我们觉得C/C++没有什么用处,但谷歌和微软等巨头也为了程序员高效开发并避免重复工作(编程思想根本之一),也出现了Flutter和 Multi-platform App UI (MAUI)等跨平台UI框架。让我们看到Flutter架构图,如图5所示。谷歌公司搞出来的Dart语言的未来生态我们也不敢做结论,但图中看起来Dart语言也算是C/C++的子孙后代的样子,当然这只是假想,实际是不是也需要进一步了解,没有学我也不能胡说。

图片

图5 移动互联网跨平台UI框架Flutter架构

4、两个基本问题显得越来越重要

随着移动互联网和云计算的时代的发展,我们感受到热门词和概念越来越多,多到搜百度...这对数据处理(或管理)从业者带来了一种“学不完”的感觉,甚至怀疑自己是不是被时代淘汰了的错觉和压力。

图片

图6 “啃不完”的新技术...

同时,我们开始提倡“让运维自动化和智能化,从业人员干更有价值的事情”的建议。我们也可以反思一下什么是有价值的、不容易过时并经得起实践考验的知识呢?我想这还离不开数据处理的 数据放在什么地方(地址)和处理的数据有多大(类型) 的两个基本点。要学计算机基本理论,那么也离不开C语言(其他编程语言也是可以的)及数据结构等基础知识学习。如果我们真正明白了数据处理基本问题和基础理论,那么其他任何一个语言学起来会更加顺利。

5、结束语

为了讲清楚软件工程这个话题,接下来的文章里我们将从集成开发环境的搭建、将身边的小需求改为程序并对其进行调试、测试并形成发行版可执行程序等几个过程跟大家一起体验软件工程的开发(施工建设)过程。虽然这个过程对带来了一些挑战,但是理解软件工程的本质和培养编程思维还是价值的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7414

    浏览量

    87703
  • 计算机原理
    +关注

    关注

    0

    文章

    24

    浏览量

    8052
  • 数据处理
    +关注

    关注

    0

    文章

    581

    浏览量

    28524
收藏 人收藏

    评论

    相关推荐

    数据处理

    初学者想请教一下大家,采集的噪声信号,想要对采集到的数据累计到一定数量再进行处理,计划每隔0.2秒进行一次数据处理,(得到均方根值等一些特征值)请问大家有什么方法可以实现
    发表于 01-07 10:11

    数据处理程序

    数据处理程序各子程序总程序
    发表于 01-17 15:43

    基于LabVIEW的数据处理方法

    基于LabVIEW的数据处理方法
    发表于 04-26 17:28

    数据采集与数据处理

    数据采集与数据处理方面的资料,应该有用
    发表于 05-07 09:07

    数据处理问题!

    数据处理基本包涵拟合,插值,滤波等,LabVIEW中一般处理的都是N行1列数据,怎么处理N行,M列数据,我现在需要将所有组
    发表于 05-08 22:43

    【MiCOKit申请】智能数据处理装置

    申请理由:对于不同的开发版电路设计不同,实物参考电路设计以方便本人能更好地找到灵感设计电路项目描述:做无线数据处理装置,蓝牙连接电脑声音控制数据处理类似人工智能的范畴
    发表于 08-22 13:55

    数据处理和分析能力的提高

    如何提高大数据处理和分析的能力
    发表于 08-23 13:07

    数据处理同步的问题

    有一个概念性的问题:用队列读取数据处理。入队列与出队列是不同的两个循环。每循环一次从出队列去一个数据处理。如果出队列的循环快于入队列的循环,必然导致队列缓存读空。我现在就遇到这种问题,从出队列读到的
    发表于 03-09 03:36

    数据处理与控制策略

    数据处理与控制策略Data Processing &  Control Strategy数字控制器的设计技术,数字滤波和数据处理,数控技术基础,数字PID控制算法常规控制方案,先进控制方案,计算机控制系统
    发表于 01-14 15:33 27次下载

    MATLAB数据处理与应用 李强

    本书为2001年国防工业出版社出版的李强主编的 MATLAB 数据处理与应用:
    发表于 06-27 15:54 0次下载
    MATLAB<b class='flag-5'>数据处理</b>与应用 李强

    密立根油滴实验-数据处理C程序

    大学物理实验中密立根实验数据处理为方便大家处理复杂的实验数据
    发表于 11-16 17:11 8次下载

    数据处理与无线传输系统的设计

    数据处理与无线传输系统的设计,又需要的下来看看 。
    发表于 01-25 10:28 3次下载

    Thumb数据处理指令

    Thumb数据处理指令 数据处理指令是指那些操作寄存器中数据的指令。Thumb指令集中的数据处理指令是ARM指令集数据处理指令的一个子集,其
    发表于 10-19 10:04 0次下载

    数据海量数据处理方法总结

    数据海量数据处理方法总结。
    发表于 04-26 09:16 13次下载

    FPGA在数据处理中的应用实例

    FPGA(现场可编程门阵列)在数据处理领域有着广泛的应用,其高度的灵活性和并行处理能力使其成为许多高性能数据处理系统的核心组件。以下是一些FPGA在数据处理中的应用实例: 一、通信协议
    的头像 发表于 10-25 09:21 177次阅读