Java for You 架构设计 02 | 架构设计的历史背景

02 | 架构设计的历史背景

  • 架构设计的历史背景
  • 机器语言
  • 1940年之前
  • 难写,难读,难改
  • 汇编语言
  • 20世纪40年代
  • 面向机器
  • 不同CPU汇编指令和结构不同,同一程序对于不同CPU要做不同的实现
  • 高级语言
  • 20世纪50年代
  • Fortran、LISP、Cobol
  • 程序员不需要关注机器底层的低级结构和逻辑,而只要关注具体的问题和业务即可。
  • 通过编译程序的处理,高级语言可以被编译为适合不同CPU指令的机器语言。程序员只要写一次程序,就可以在多个不同的机器上编译运行,无须根据不同的机器指令重写整个程序。
  • 结构化程序设计
  • 20世纪60年代
  • 引出结构化编程,创造模块概念
  • 软件危机:软件规模和复杂度增加,软件质量低下,项目无法如期完成,事故频发
  • 美国水手一号火箭发射失败事故
  • IBM的 System/360 操作系统开发,《人月神话》
  • 1968 召开会议,提出软件工程
  • 无法根除软件危机,一定程度上缓解软件危机
  • Pascal
  • 主要特点是抛弃goto语句,采取“自顶向下、逐步细化、模块化”的指导思想。
  • 面向对象
  • 20世纪80年代
  • 引出面向对象编程,创造对象概念
  • 第二次软件危机
  • 软件的扩展变得非常复杂
  • 面向对象思想流行
  • C++、Java、C#
  • 软件架构的历史背景
  • 20世纪90年代
  • 软件架构流行,创造组件概念
  • 《软件架构介绍》
  • 随着软件系统规模的增加,计算相关的算法和数据结构不再构成主要的设计问题;当系统由许多部分组成时,整个系统的组织,也就是所说的“软件架构”,导致了一系列新的设计问题。
  • 出现在大厂的原因
  • 大厂开发的软件系统具有较大规模
  • 较大规模的软件系统才会面临软件系统架构问题
  • 系统规模庞大,内部耦合严重,开发效率低;
  • 系统耦合严重,牵一发动全身,后续修改和扩展困难;
  • 系统逻辑复杂,容易出问题,出问题后很难排查和修复;
  • 小结
  • 模块、对象、组件本质上是对达到一定规模的软件进行拆分,差别在于随着软件的复杂度不断增加,拆分的粒度越来越粗,拆分的层次越来越高。
本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/architecture/3597.html

作者: 蜗牛

03 | 架构设计的目的

01 | 架构到底是什么?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部