zoukankan      html  css  js  c++  java
  • 抽象和封装

          我们不聊计算机的产生和计算机各部分组件的演变史,虽然这些与我要说的东西也都息息相关,但是,在这里,我只剖析一个结果!

          我们知道在冯-诺依曼计算机中,cpu与内存,或者说整个计算机中用的芯片,它们将0和1转变成一系列操作,最底层的指导,即是数学中的布尔逻辑门,通过简单而又复杂的电路原理将布尔逻辑门在电子机器领域具现出来,而后硬件技术的进步,使得一个微小原件中可以封装组合更多的布尔逻辑门,从而形成电路集成,就像半加器和全加器,以及由N多个半加器或者全加器组成的强大的cpu各部分内部组件,到最后,在一些其他技术的支持下,从而构成cpu,实现核心处理器功能.存储单元也一样,像内存,最基础也是这些构成,它的寻址使用了矩阵.而后这些一层层封装起来,抽象出来很多概念,通过这些概念的组合,我们又再一次进行封装,形成新的概念,最后,一个问题的解决,依靠的正是这些概念之间的关系组成的复杂逻辑操作,我们已经将这些概念物理具现化,到最后我们只需要操作这些最终的概念所具现化后的产物,而不需要关心它最底下是怎么实现的,是怎么变成1和0,又是怎么转换成电流运作,又是怎么显示成图像,我们可以将这些最终的概念当成原子,而不去关心其他.这是计算机硬件中抽象和封装的魅力!

          软件工程中,我们在最开始的时候,使用机器码编程,再到后来,将机器码进行封装,形成了汇编指令,这也促进了计算机硬件的改变,使的后来计算机各组件中芯片也有了内嵌的指令集,最后,我们有了更进一步的语言,将汇编语言又进行了封装,就像计算机硬件工程那样,我们也不必关心它的下面是怎样的(当然,BZ这样说,并不是说真的不必去关注这些,只是说在正常的开发中,不用去搞这些,这样一步步是提升了开发效率和降低开发难度的,有些程序的优化是需要关注它的汇编过程的),再到现在的各种高级语言,像java,python,c++,PHP...等,它们都是对底层的抽象封装,我们依靠它们各自提出的概念来组合形成解决问题的逻辑操作,从而形成各种软件或者程序.再到最后,为了解决各种问题,又进行了抽象和封装,这就产生了 企业开发中的各种框架,我们又一次可以少用脑力,提高开发速度了.当然这些带来的是有一些安全问题,性能上的牺牲,以及一些其他问题,但是换我们来解决的话,可能很大程度上还是做不到那样好,总而言之,利是大于弊的,当然,这是BZ的看法.

          现在,各种层出不穷的技术产生,在我看来就是一种解决方案的整合,一种对底层的抽象封装,以及比较合理的实现方式,它们都是服务于开发,为开发效率而产生,所以,我们不能因为用技术而用技术,要让技术服务于问题,我们可以选择这个技术,也可以不必选择,重点就在于是否需要!

          BZ聊的只是一些个人的认知和思想,当然,这些朋友们也都懂,BZ只是写下来,希望能够更进一步,通过交流有更深刻的认识!

          我们中国不是有句老话叫做 "看山是山,看山不是山,看山还是山!",BZ觉得对知识的理解也是如此!

    天行健君子以自强不息地势坤
  • 相关阅读:
    vue路由懒加载
    Git文档
    Redis启动多个实例,并以windows服务方式运行
    windwos service安装命令
    sqlserver随机查询
    Redis 主从配置
    Unity3D 学习资料
    MAC常用终端命令
    服务器证书安装配置指南(IIS7)
    sql Exists与in 的区别
  • 原文地址:https://www.cnblogs.com/wbqcheng/p/9606254.html
Copyright © 2011-2022 走看看