极客时间_软件设计之美 笔记

极客时间_软件设计之美 笔记

1.软件设计是什么

  1. 写代码前应该有模型设计

    • 比如mvc结构就是一种模型
  2. 代码应该有规范,

    • 产品内部原则 避免每个开发按自己的想法实现,有人写rest 有人写mvc
    • 代码模块原则 某段代码应该放在哪里,比如工具类放到ibase里的哪个模块的哪个包
    • 软件设计原则 比如 需要 防腐层 外部接收的json需要转换成内部对象,json解析器直接解析出来的对象有可能有大量附加信息占用内存。

低耦合高内聚

2.分离关注点

  1. 解决问题的思路 分而治之。
    • 分的要足够细,不要把问题混淆
    • 分解问题时候不是一个维度,业务维度、性能、异常情况等等。每一个维度是一个关注点
      • 动静分离
      • 读写分离
      • 高频低频分离
    • 业务处理和技术实现是两个关注点,不是所有问题都是技术问题,分层封装。

分离的关注点越多越好粒度越小越好。
CQRS

3. 可测试性

  1. 演化质量
    • 可测试性
    • 可维护性
    • 可扩展性
    • ···
  2. 设计时考虑可测试性
    • 不保证钢筋水泥的质量如何保证盖出来的大厦的质量。
    • 保证软件质量就要保证模块的质量就要保证每个类每个方法的质量
    • 有的类不好测试,说明设计时没有考虑可测试性
    • 有些设计模式就没有考虑可测试性,如单例模式。

4. 了解设计

  1. 从上到下设计
    • 先设计模型,这时候不应该含技术细节
    • 再根据模型设计接口,这时候不应该包含内部实现,特别对于使用三方工具最好进行包装,便于后续升级改造。
    • 最后设计实现
  2. 对于实现也需要设计
    • 一个类的数据结构 就是模型
    • 一个类的方法有哪些能力 就是接口
    • 方法怎么写用什么技术用什么算法 就是实现
      极客时间_软件设计之美 笔记

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月26日
下一篇 2022年1月26日

相关推荐