【软件设计】5本软件设计书籍的读书笔记

前言

创作开始时间:2021年7月30日16:21:49

想系统学习一下软件设计(设计模式,架构,重构等等),所以看了几本相关书籍,并在此记录读书笔记。

1、《简约之美:软件设计之道》

在这里插入图片描述

  1. 软件设计不算科学(科学是必须能够分类的)
  2. 软件设计的目标是提高效率。
  3. 为什么计算机这么容易出问题?(崩溃、死机等)这一切与复杂性有关。不仅是软件复杂的问题,还是因为计算机本身就是复杂的。

1.1 软件设计的准则

  1. 不要编写不是必需的代码,并且要删除没有用到的代码。
  2. 设计程序时,应该根据你现在确切知道的需求,而不是你认为未来会出现的需求
  3. 仅仅根据目前确知的需求来考虑通用。

渐进式开发和设计可以实现上面三个准则!
顺序化开发,分而治之。

在这里插入图片描述
4. 简洁是相对的。
5. 代码保持一致。(如命名都用下划线写法)
6. 可读性。包含:命名,注释。

在这里插入图片描述

1.2 小结

在这里插入图片描述

2、《软件设计精要与模式》

在这里插入图片描述

2.1 软件架构

软件架构的定义:
在这里插入图片描述
软件架构包含:

  1. 程序组织 (封装,抽象,分层,领域模型)
  2. 数据设计
  3. 安全性
  4. 性能
  5. 可扩展性(如面向对象 OOP)
  6. 可靠性
  7. 可用性

2.2 软件设计

软件设计的原则:
在这里插入图片描述
极限编程。

2.3 软件设计模式

23种设计模式。

2.4 通用(其他)

  1. 没有及时的更新文档有时候比没有文档给项目带来的负面影响更大
  2. 测试驱动开发
  3. UML

2.5 面向对象

  1. 核心三要素:封装,继承,多态
  2. 封装:数据的合理隐藏和公开
  3. 继承:重用和抽象的基础。极大减少代码冗余。
  4. 多态:有机地将封装(定义对象类型)、继承(定义不同类型之间的关系)和抽象(提供对象多态的能力)结合起来。

在这里插入图片描述

2.6 面向对象设计原则

  1. 单一职责原则(高内聚,细粒度)
  2. 开放封闭原则(对扩展开放,对修改封闭)(比如函数的参数是类,而不是基础类型)
  3. liskov替换原则(继承体系的规则,父类的功能子类都要有,完全遵循。)
  4. 依赖倒置原则
  5. 接口隔离原则(使用多个专门的接口)

2.7 封装变化

  1. 访问者模式,保证可扩展。
    在这里插入图片描述

  2. 工厂方法模式

我的理解:以上实际上就是接口的使用,继承的使用。

  1. 后面还有很多,都看不懂了。先不记录。

2.8 体验重构

  1. 职责分离
  2. 引入基类(抽象类,不需要实例化)
  3. 引入设计模式

2.9 测试驱动开发

TDD

其他

还有很多章,不看了,差不多可以了。

3、《程序员必读之软件架构》

在这里插入图片描述

随便过了一下,感觉目前不太需要。

4、《LECTURE NOTES ON Course Code》

在这里插入图片描述

看上去还行,先余着。

5、《华为软件编程规范总则》

还是挺有参考价值的。对代码效率,变量、结构等都有相关指导。

小结

创作结束时间: 2021年7月30日18:28:09

终于看的差不多了。后面有机会再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值