计算机应用系统设计完整概览

要把计算机做的资深,就需要有对整个事件的全面认识。下面的结构图就是对整个系统设计的全面认识。

  • 从底层说起,所有的计算机设备包括PC,移动设备,嵌入设备都是一些有CPU核心和其他硬件设备组合的可通过电信号控制的硬件设备。
  • 这些设备如何通过代码控制呢,就需要用到所谓的CPU机器指令。这些指令是CPU生产商提供的,可以操作CPU的最最底层的指令。至于如何实现的,其实机器指令就是01代码,之前01代码是以纸上的空的形式存在的,CPU就是个不停扫描的机器读到01的位置就会调整电路的状态完成指定计算(这里需要参考二极管电路和计算机运行的相关知识了),后来只不过是升级了,本质还是没变。要详细了解要看通信原理等相关的硬件知识资料了。这里不用细究,而是要形成全局认知。
  • 后来随着编译原理的出现,逐渐可以对机器指令进行抽象,转为人类可识别的语言,随后发展出现了汇编,然后是C/c++等静态语言,后来又在静态语言的基础上构建虚拟机创建更加方便的动态语言比如java.c#.python等。
  • 有了便于操作的语言之后,便考虑使用语言构建更适合人类使用的操作系统来控制这些硬件,为人类提供一个统一的平台,屏蔽底层硬件的所有调用过程,于是出现了操作系统。
  • 有了操作系统之后,由于操作系统只是把底层硬件封装好供你调用了,并没有其他的用处,但是没有其他用要计算机干嘛。所以这就相当于提供给你了一个完善的平台,并且允许你在上面使用它提供的接口,而你要做的就是发挥这个平台的潜力,尽可能的把现实需要的功能搬到这个虚拟的平台里,扩展平台的实际功能,这个就是所谓的应用开发。
  • 应用开发分为两个层级一个层级是直接开发指定功能的应用供用户使用,这种程序一般扩展性差,功能单一,但是是必须的实用的。另一个层级就是开发为应用开发服务的应用,这类应用通常就是功能固定,但是可扩展性极强,有强劲的自定义功能,比如数据库自定义表,比如各种服务器软件可以自定网站,再比如各种框架,可以拿来自定义修改。
  • 后来在计算机网络的加持下,应用开发一般是B/S模式开发,就是现在常说的前端后端,这个和应用的类型层级冲突,不同层级的应用都是基于B/S模式开发的。
  • 服务端软件在架构层面,一方面经历了单体到微服务的演变过程,当然不是所以的软件都要演变称为微服务,适合的架构才算最好的,另一方面根据自身软件特点又有自己的架构特点,比如数据库,虚拟机等软件。也就是软件既有自身的架构思想,又有对分布式等外界网络技术的扩展结构

有了上述的认识,之后的学习无非就三个方面

  • 夯实基础——计算机网络,操作系统,编译原理,计算机组成原理等底层知识
  • 学习应用软件——学习各种中间件应用的功能,分析
  • 构建应用——总结各种中间件如何和实际需求结合满足人类需要。

外加两个过程

  • 功能认识——这个系统实现了什么功能,有什么用
  • 功能实现的思想——这个功能怎么实现的

语言和硬件是这一切的基础,语言通过自身的堆叠加上思想支持形成了系统,然后语言和系统开始相互作用不断的产生新的语言和系统,这是一个神奇的过程,语言依靠自身构建系统,系统可以扩展语言,语言和系统互为基础不断发展。
所以把系统分为六大类:操作系统(操作系统的子系统虚拟机)语言运行的虚拟系统,提供固定功能服务的系统对语言进行整合,提高可用性的系统框架根据实际需求使用已有系统和语言构建的新系统对系统进行分布式扩展的系统

也就是独立的系统设计思想(系统的系统,系统两种系统设计思想)扩展为分布式的设计思想(独立系统逻辑不变只是扩展)代码构建的设计思想三大类。


之前说过语言是基石头,语言通过系统设计思想形成系统,进而发展了语言,同时也发展了系统自身。系统为何有这么大的魅力,这个的关键就是系统的设计思想,系统设计思想分为架构思想和代码设计思想一个是宏观的系统结构一个是微观的实际开发,对于系统架构又有很多分类,比如抽象层次高的分布式系统,比较具体问题的架构事务,安全等,都属于系统架构层面的内容。而代码设计方面就是23种设计模式,把抽象的架构转为具体的实现,并且方便使用。所以整个专栏会分为如下几个部分

  • 系统设计思想

    • 语言设计

      • 代码设计模式
      • 语言+设计模式 ——> 框架
    • 单体到微服务的应用的扩展系统设计思想
    • 独立应用设计思想
      • 数据库原理
      • 消息队列原理
      • Spring的设计等等
      • 虚拟机原理
      • 具体系统设计实现分析
        • OA,ERP系统
        • B2C系统
        • 根据需要定制的系统

系统设计综述——个人思考总结相关推荐

  1. 自动驾驶的社会交互的综述和思考

    没有人在真空中驾驶汽车:她/他必须与其他道路使用者协商,以实现他们在社交交通场景中的目标(goals).理性的人类驾驶员可以社会兼容的方式与其他道路使用者交互,在交互密集.安全-紧要的环境中顺利完成他 ...

  2. 王喆:计算广告技术综述与思考

    ‍ 编|王喆 源|DataFunTalk 导读:大家好,我是<深度学习推荐系统>的作者王喆,很多同行可能读过这本系统性介绍推荐系统的书,但大多数人可能不知道我职业生涯的头四年都在做广告系统 ...

  3. 动作游戏战斗系统设计综述

    http://gad.qq.com/article/detail/6598 一.        战斗的基本要素 1.     按键反馈(技能) 提到动作类游戏我们大多都会想到<鬼泣>.&l ...

  4. 计算体系架构研究综述与思考

    来源:专知 本文为论文,建议阅读5分钟计算体系架构的演进成为了未来计算系统发展的重要技术途径. 随着摩尔定律 (Moore's law) 与迪纳德 (Dennard) 缩放定律逐步走向终结, 依靠集成 ...

  5. 问答系统设计的一些思考

    上海站 | 高性能计算之GPU CUDA培训 4月13-15日 三天密集式学习  快速带你晋级 阅读全文 > 正文共1415个字,6张图,预计阅读时间4分钟. 问答系统通常分为任务型机器人.闲聊 ...

  6. 系统设计开发模式思考

    工作主要分为几大块: 类型: 数据处理(数据工程师) 数据开发(后台开发) 数据展现(前端开发.GIS开发) 工作步骤,两种模式: 数据驱动: 初步原型设计->数据需求梳理->数据接入-& ...

  7. 业务模块系统设计的思考

    关于同步异步混合系统设计的一点思考 本系统设计的异步同步混用的场景,在设计时,首先一点就是能够将整体的处理逻辑进行拆分成小单元,然后再将小单元打乱重排,保证串行和并行的合理性,串行前后单元的依赖关系, ...

  8. MIT将AI引入中学课堂,除了设计AI系统,还要学生思考背后的伦理

    大数据文摘出品 来源:MIT 编译:曹培信 近日,姚期智领衔主编.清华姚班师资做编委的高中AI教材在清华举行了签约仪式,AI走进高中课堂又迈出了坚实的一步.近期,MIT的研究人员也开发了一个AI课程, ...

  9. 一文带你重新审视CAP理论与分布式系统设计

    这是一篇来自微信公众号的文章,如果图片看不到,可直接跳转到文章出处查看:https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=265076 ...

最新文章

  1. C语言:constkeyword、结构体
  2. Winform中实现ZedGraph的多条Y轴(附源码下载)
  3. (转)JavaScript: 零基础轻松学闭包(1)
  4. 寄存器分配图着色_富士苹果促进着色技术八大要点!是时候看看了!
  5. ACM及各类程序竞赛专业术语
  6. mysql 1449 : The user specified as a definer ('usertest'@'%') does not exist 解决方法 (grant 授予权限)...
  7. 确认! Python再次夺冠,老码农:崩溃!
  8. APP签名MD5获取
  9. 仿形靠模的计算机设计方法,仿形靠模的计算机设计方法.pdf
  10. html加载js那些事
  11. jmeter使用if控制器_Jmeter 常见逻辑控制器详解
  12. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...
  13. C语言dos游戏编程,◣电脑游戏编程入门 (DOS)◥
  14. 双系统装完只能u盘启动_U盘启动盘如何安装Win7+Win8双系统史上最详细教程
  15. 局域网内查询嵌入式设备IP的几种方式
  16. Mac 命令行关闭和打开蓝牙
  17. 设计标志性专辑封面的 5 个技巧
  18. 查看虚拟机vmware下linux的ip
  19. 区块链常用序列化分析
  20. 蓝牙mesh中的TTL解读

热门文章

  1. 中国人寿信息技术部实习总结
  2. 如何充分利用开源项目_充分利用最好的5个开源转移学习项目来增强您的项目...
  3. 用U盘重装Win7系统方法
  4. ProM安装以及配置
  5. iOS 左上角的返回按钮的几种设置
  6. itext 导出word
  7. css中用rgba设置颜色三光色
  8. [损失设计]2.Softmax Loss
  9. STM32F05x加入RDP(LV1)后,Segger无法Unlock的解决办法
  10. 推荐学java——Spring之AOP