第二周 框架设计学习总结
一、内容梳理
编程历史
什么是计算机(what)
一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备
什么是程序(what)
计算机读取数据进行计算,这些数据本身包含着计算的逻辑,这个数据就是程序
实现计算机(how)
最经典计算机实现理论是冯诺依曼体系结构,如下图所示:
实现程序(how)
1.面向机器的(劳动工具)
电线编排到打孔纸袋带到汇编语言的进化,这个进化过程虽然在进步,但是它是面向机器的编程,没有从根本上跟硬件解耦,需要了解硬件的特性才能进行编程,过程复杂不容易理解
2.面向程序员(劳动者)
从汇编语言继续进化,这时候出现了一些面向过程的结构化的高级语言,最经典就是C语言了,它是面向逻辑的,线性的非常符合人类的思维模式,随着应用系统规模不断变大,系统越来越复杂,这种线性面向逻辑的编程模式使得代码复杂度变得很高,代码越来越难以维护
3.面向对象(劳动对象)
从面向过程语言到面向对象语言得进化,更多得去关注领域问题(计算机编程得本质就是要解决各种现实世界的领域问题),通过对领域问题得分析、抽象得到各种对象和模型,更容易直观解决问题,反应现实世界的复杂性,如下图所示:
为什么是面向对象(how)
更真实和直观反应现实世界的复杂性,是实现的软件可读性、可修改性和可测试性更高,是C等面向过程语言无法解决的
框架
什么是高内聚低耦合(what)
高内聚低耦合,是软件工程中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的内聚性是否高,类之间的耦合度是否低
什么是框架(what)
框架是用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现
如同框架结构的大厦的框架
简化应用开发者的工作
实现了多种设计模式,使应用开发者不需要花太大的力气,就能设计出结构良好的程序来
如何实现框架(how)
框架作为系统基础当然必须是高内聚低耦合,所以如何实现高内聚低耦合的框架,通常遵循以下原则:
开/闭原则
依赖倒置原则
李氏替换原则
单一职责原则
接口分离原则
为什么要高内聚低耦合(why)
可以使系统达到以下几种目标:
1.易扩展-易于增加新的功能
2.更强壮-不容易被粗心的程序员破环
3.可移植-能够在多样的环境下运行
4.更简单-容易理解、容易维护
二、收获和体会
1.从编程历史去观察编程语言发展过程,对面向对象编程的概念和所要解决的问题有了更深刻和系统的认识
2.如何通过一些设计原则去实现一个高内聚低耦合的系统和框架,对框架的概念有更深刻认识,通过学习设计原则和设计模式掌握了开框架的方法
三、思考
1.我们现在都在谈敏捷开发,敏捷开发不只是一种项目开发和管理过程,如果开发出来的程序不容易扩展和维护,移值性也不好,何谈敏捷
2.是否基于面向对象实现一种图形化编程语言和框架替代文本编程语言,降低编程门槛,让业务人员自己通过图形化编程实现自己的业务需求
四、后续计划
1.平时多看别人的框架设计实现,它遵循哪些原则和违背了哪些原则,甚至能提出改进意见和方案
评论