写点什么

架构师训练营第二周总结:软件开发简史和框架设计的方法

用户头像
hifly
关注
发布于: 2020 年 06 月 17 日
架构师训练营第二周总结:软件开发简史和框架设计的方法

架构师训练营进入到第二周的时间。这一周的第一次课,老师主要介绍了一下软件开发的简史。早在1700年代,德国人莱布尼兹就开始了最早的编程探索。莱布尼兹进行了大量的工作,发明了微积分和二进制。在1800年代,法国人雅卡尔发明了一台可编程的织布机。在1850年左右,英国人Ada用打孔纸写出来人类的第一个软件程序,也成为了人类的第一位程序媛。冯诺依曼创造了现代计算机的体系。在早期计算机的编程非常麻烦,程序员要将电线编来编去,因此有了编程这个词。



编程语言也经历了很长时间的发展,从和硬件强相关到和硬件无关,变的越来越易用,越来越符合人类的思维习惯。



编程的目的是:用计算机来解决现实世界的问题。

编程语言是一种“抽象”的机制,问题是对“谁”来进行抽象。



各种不同的编程语言,抽象的对象都不同。机器代码和汇编语言是对基础机器进行抽象。非机构化的高级语言(如Basic,Fortran等)对计算处理逻辑进行抽象。结构化的程序设计对问题领域进行一定程度的抽象。面对对象的程序设计,直接表达问题空间内的元素。



面向对象编程的三要素



封装性:

隐藏了实现细节(访问控制),定义接口

继承性:

IS-A关系, HAS-A关系(组合)

多态性:

后期绑定(虚函数)

向上转形(Up Casting)



在面向对象的编程语言中,多态非常简单:子类实现父类或者接口的抽象方法,程序使用抽象父类或者接口编程,运行期注入不同的子类,程序就表现出不同的形态,是为多态。



设计模式是用于解决某一种问题的通用解决方案,设计模式贯彻了设计原则,是语言中立的。



框架是用来实现某一类应用的结构性程序,是对某一类架构方案可复用的设计与实现。框架如同建筑的骨架,实现了多种设计模式,简化了应用开发者的工作。



框架调用应用程序代码,应用程序代码调用工具。举例来说Junit是框架,而Log4j是工具。



这一周的第二次课,老师用例子程序重点讲解了如何运用设计模式来设计代码框架,优化代码结构。



面向对象编程的5个原则:1)开/闭原则(OCP)2)依赖倒置原则(DIP)3)Liskov替换原则(LSP)

4)单一职责原则(SRP)5)接口分离原则(ISP)。



开/闭原则:

  • 对于扩展是开放的

  • 对于更改时封闭的

  • 不需要修改软件实体(类,模块,函数等),就能实现功能的扩展



传统的扩展模块的方式就是修改模块的源代码。如何实现不修改而扩展呢?关键在于抽象!



依赖倒置原则:

  • 高层模块不能依赖低层模块,而是大家都依赖于抽象

  • 抽象不能依赖实现,而是实现依赖抽象

依赖倒置原则倒置了什么:

  • 模块或包的依赖关系

  • 开发的顺序和职责



Liskov替换原则: 子类型(subtype)必须能够替换掉它们的基类型(base type)。一个正确的继承要符合Liskov替换原则。



单一职责原则(SRP):又被称为内聚性原则。一个类只能有一个引起它变化的原因。一个职责是一个变化的原因。



接口分离原则(ISP):不应该强迫客户程序依赖它们不需要的方法。



用户头像

hifly

关注

还未添加个人签名 2018.03.08 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第二周总结:软件开发简史和框架设计的方法