第 02 周 开发编程框架 学习总结
如何成为一个架构师.
从现在开始要把自己当成架构师来思考.
主动承担架构工作
要做别人不能做的事情.
破局的能力
计算机计算的是数据.数据本地包含着逻辑.
编程的核心要素
编程的发展过程
面向机器编程(计算机-劳动工具)
汇编语言
面向人编程(人-劳动者)
高级语言
面向对象编程(客观业务领域-劳动对象)
对象 : 领域问题中的对象
面向对象是编程发展的终极形式.
近些年面向对象编程更细化的分支
函数式编程(更适合面向数据编程)
响应式编程
面向对象的三个特性,都不是独有的
封装
继承
多态(核心)
运行时决定
面向对象编程的本质
面向对象编程不是使用面向对象的编程语言进行编程,而是利用多态特性进行编程。
框架
框架是用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现
如同框架结构的大厦的框架
简化应用开发者的工作实现了多种
设计模式,使应用开发者不需要花太大的力气,就能设计出结构良好的程序来
不同领域的框架
微软公司为 Windows编程开发了MFC框架
Java为它的GU(图形用户界面)开发了AWT框架。
还有许多开源的框架: My Batis, Spring等。
Web服务器也是框架: Tomcat
框架 VS 工具
有框架调用的是框架
开发直接用的是工具
框架调用应用程序代码
应用程序代码调用工具
软件设计的最终目的,是使软件达到“强内聚、松耦合”,从而使软件:
易扩展-易于增加新的功能
更强壮-不容易被粗心的程序员破坏
可移植-能够在多样的环境下运行
更简单-容易理解、容易维护
与之相反,一个“不好的”软件,会发出如下“臭味
僵硬-不易改变。
要改动很多, 修改类才能完成
脆弱-只想改A,结果B被意外破坏。
一改就出问题,条件分支比较多
不可移植-不能适应环境的变化。
无法分离出来,
导致误用的陷阱-做错误的事比做正确的事更容易,引诱程序员破坏原有的设计
晦涩-代码难以理解。
过度设计、 copy-paste代码。
架构设计原则
1. 开闭原则(OCP)
不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展。
2. 依赖倒置原则(DIP)
高层模块不依赖底层模块
倒置了什么
模块或包的依赖关系
开发顺序和职责
软件的层次
好莱坞原则(核心)
你不用调用框架,框架回来调用你,
3. Liskov替换原则(LSP)
子类型( subtype)必须能够替换掉它们的基类型( base type)。
看行为能不能替换
4. 单一职责原则(SRP)
一个类,只能有一个引起它的变化的原因.
一个类打开不超过一个屏幕.
5. 接口隔离原则 (ISP)
不应该强迫客户程序依赖它们不需要的方法
不把用于不需要的接口暴露给它.
优化出现if else 的代码.
好与差程序员如何区分.
优秀程序员欢迎需求变更.
推荐书籍 : 敏捷软件开发(原则 模式与实践)
评论