第 2 周 - 学习总结

发布于: 5 小时前

1 复习上周课程

  1. 回顾10种UML图中常用的7种,以及使用场景(以一个学员的总结图说明使用场景)。

  2. 老师以前的两个个人经历说明UML在架构设计中的重要性。

  3. 以两个架构文档说明架构文档如何编写,如何在架构设计文档中运用UML,不一定每个UML视图都会在架构文档中用到,要按照侧重点运用。

  4. 最后强调不做设计就做不好架构师,做架构设计当然除了UML图也可以使用其他绘图方式。

2 软件开发简史

  1. 编程早于计算机的产生,莱布尼兹、第一位程序媛Ada

  2. 计算机不是读取数值进行计算,而是读取数据进行计算,这些数据本身包含着计算的逻辑,这个数据就是程序。

  3. 电线、打孔纸袋编程-->面向机器编程(机器语言、汇编语言)-->面向过程编程(面向逻辑编程,面向人的编程)-->面向对象编程(面向问题领域中的对象编程,整理出问题领域中对象和对象之间的关系)

  4. 面向对象编程诞生的背景:软件危机

  5. 面向对象编程是编程语言的终极形式

  6. 函数式编程,反应式编程都是面向数据的编程,可以看做是面向对象编程的一个细分领域

3 面向对象编程

  1. 什么是对象?对象具有状态、行为和标识

  2. 无状态对象,对象不包含数据,数据通过方法参数传入;无行为对象,一堆字段,没有行为(getter/setter不算)。上述两种不应该是面向对象编程。

  3. 面向对象编程的三大特征:封装、继承和多态。但是这三大特征并不是面向对象所独有的。多态是面向对象编程的核心特性,如果没有使用多态,就相当于没有使用面向对象的编程语言。这周和下面几周课程都会讲多态。

  4. 面向对象编程就是利用多态特性编程

  5. 框架对于架构师的技术地位至关重要,框架应该由架构师开发,或者由架构师选型、维护。如果能做到上述两点,在团队中就是架构师,即使没有title。

  6. junit是框架,log4j是工具。框架调用应用程序代码、应用程序调用工具。框架是架构落地的保证。

  7. 以电话拨号软件为例引出面向对象设计原则

  8. 软件设计的最终目的:强内聚、低耦合;不好的软件:僵硬、脆弱、不可移植、导致误用的陷阱、晦涩、过度设计、不必要的重复

  9. 开闭原则关键是抽象

  10. 好莱坞原则,依赖倒置:框架来调用程序,比如spring,tomcat,junit,我们没有调用这些框架,而是框架来调用我们的应用程序。我们实现框架定义的接口、约束(注解),会被框架调用,使用框架的功能

  11. 里氏替换原则:子类型必须能够替换掉他们的基类型。子类抛出的异常应该也是父类异常的子类,否则接收不了

  12. 职责单一原则

  13. 接口隔离原则:不应该强迫应用程序依赖它不需要的方法。实现类有多个方法,接口暴露的方法只有需要的几个,职责单一强调拆开,接口隔离强调如果拆不开用接口隔离开,二者可以互相配合

4 推荐图书

《敏捷软件开发 原则、模式与实践》

  1. 敏捷的不是管理,是设计,类之间要遵循今天的设计原则,以及一些模式,更快速的响应需求变化。技术决定是否能够敏捷

  2. 好的程序员和差的程序员如何区分:优秀的程序员应该欢迎需求变更,而不是怕需求不变更(不变更,做的设计白做了),因为你的设计应该就是为了需求变更二而设计。

5 案例

什么是反应式编程框架:请求并发,应用程序多线程,tomcat为每个请求分配一个线程,线程阻塞等待数据库连接等等,用户等不到线程,超时,感觉系统崩溃。

用户头像

大海

关注

还未添加个人签名 2018.07.14 加入

还未添加个人简介

评论

发布
暂无评论
第 2 周 - 学习总结