第 02 周 开发编程框架 学习总结

用户头像
Jaye
关注
发布于: 2020 年 06 月 15 日
第02周 开发编程框架 学习总结
  1. 如何成为一个架构师.

  • 从现在开始要把自己当成架构师来思考.

  • 主动承担架构工作

  • 要做别人不能做的事情.

  • 破局的能力

  1. 计算机计算的是数据.数据本地包含着逻辑.

  2. 编程的核心要素

  1. 编程的发展过程

  • 面向机器编程(计算机-劳动工具)

  • 汇编语言

  • 面向人编程(人-劳动者)

  • 高级语言

  • 面向对象编程(客观业务领域-劳动对象)

  • 对象 : 领域问题中的对象

  1. 面向对象是编程发展的终极形式.

  2. 近些年面向对象编程更细化的分支

  • 函数式编程(更适合面向数据编程)

  • 响应式编程

  1. 面向对象的三个特性,都不是独有的

  • 封装

  • 继承

  • 多态(核心)

  • 运行时决定

  1. 面向对象编程的本质

  • 面向对象编程不是使用面向对象的编程语言进行编程,而是利用多态特性进行编程。

  1. 框架

  • 框架是用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现

  • 如同框架结构的大厦的框架

  • 简化应用开发者的工作实现了多种

  • 设计模式,使应用开发者不需要花太大的力气,就能设计出结构良好的程序来

  • 不同领域的框架

  • 微软公司为 Windows编程开发了MFC框架

  • Java为它的GU(图形用户界面)开发了AWT框架。

  • 还有许多开源的框架: My Batis, Spring等。

  • Web服务器也是框架: Tomcat

  1. 框架 VS 工具

  • 有框架调用的是框架

  • 开发直接用的是工具

  • 框架调用应用程序代码

  • 应用程序代码调用工具

  1. 软件设计的最终目的,是使软件达到“强内聚、松耦合”,从而使软件:

  • 易扩展-易于增加新的功能

  • 更强壮-不容易被粗心的程序员破坏

  • 可移植-能够在多样的环境下运行

  • 更简单-容易理解、容易维护

  1. 与之相反,一个“不好的”软件,会发出如下“臭味

  • 僵硬-不易改变。

  • 要改动很多, 修改类才能完成

  • 脆弱-只想改A,结果B被意外破坏。

  • 一改就出问题,条件分支比较多

  • 不可移植-不能适应环境的变化。

  • 无法分离出来,

  • 导致误用的陷阱-做错误的事比做正确的事更容易,引诱程序员破坏原有的设计

  • 晦涩-代码难以理解。

  • 过度设计、 copy-paste代码。

  1. 架构设计原则

1. 开闭原则(OCP)

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

2. 依赖倒置原则(DIP)

  • 高层模块不依赖底层模块

  • 倒置了什么

  • 模块或包的依赖关系

  • 开发顺序和职责

  • 软件的层次

  • 好莱坞原则(核心)

  • 你不用调用框架,框架回来调用你,

3. Liskov替换原则(LSP)

  • 子类型( subtype)必须能够替换掉它们的基类型( base type)。

  • 看行为能不能替换

4. 单一职责原则(SRP)

  • 一个类,只能有一个引起它的变化的原因.

  • 一个类打开不超过一个屏幕.

5. 接口隔离原则 (ISP)

  • 不应该强迫客户程序依赖它们不需要的方法

  • 不把用于不需要的接口暴露给它.

  1. 优化出现if else 的代码.

  2. 好与差程序员如何区分.

  • 优秀程序员欢迎需求变更.

  1. 推荐书籍 : 敏捷软件开发(原则 模式与实践)

用户头像

Jaye

关注

还未添加个人签名 2018.01.23 加入

还未添加个人简介

评论

发布
暂无评论
第02周 开发编程框架 学习总结