阅读《架构整洁之道》

想弄明白问题

  • 软件架构是什么,为什么要有;
  • 如何定义好的架构,有哪些指标;
  • 如何实现好的软件架构。

读后感

软件架构是什么,为什么要有

参照第15章的描述,

软件架构这项工作的实质就是规划如何将系统切分成组件,并安排组件之间的排列关系,以及组件之间互相通信的方式。

为什么要这么做,

设计软件架构的目的,就是为了在工作中更好地对这些组件进行研发、部署、运行以及维护。

具体来说,根据单一职责原则,切分系统成多个组件,利用依赖反转原则调整组件的依赖关系,根据同步还是异步设计组件之前的通信接口。这么做的目的很简单:降低开发、部署、运行以及维护的成本,用最少的人力和物力来完成系统的构建和维护。

如何定义好的架构,有哪些指标

书里面给了三个指标:不稳定性(A)、抽象性(I)、距离主序列线的距离(D)。

  • A: 假设a_{out}表示该组件依赖的组件数量,a_{in}表示该组件被依赖的组件数量,那么A = a_{out} / (a_{out} + a_{in}),当前组件依赖的其它组件越多,则越不稳定;
  • I: 假设C_i表示组件内抽象类的数量,C_c表示具体实现类的数量,则I=C_i/(C_i + C_c),当前组件内的抽象类占比越高,则越抽象;
  • D: 先定义主序列线,以A为纵轴,I为横轴,只取第一象限,则主序列线为A+I-1=0的线段,D表示当前组件距离主序列线的距离,值越小,说明设计越好。

如何实现好的软件架构

这里引入了一个概念:层次,一个组件的层次越高,它距离输入/输出的距离也就越远。

在项目初期,需要保持架构的可选项,延迟策略无关的决策,比如选用什么数据库、web框架、展示界面等。将修改原因、修改时间、相同层次的代码定义到一个组件,并通过定义抽象类的方式,让低层次的组件依赖高层次的组件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是《架构整洁之道》的读书心得,作者将书中内容拆解后再组织,不仅加入了个人的独到见解,而且用一张详细的知识脉络图...
    程序员小2阅读 232评论 0 1
  • 目标 用最少的人力成本满足构建和维护该系统的需求 衡量指标 版本迭代 -- 工程师团队规模 版本迭代 -- 代码总...
    小小一技术驿站阅读 649评论 0 0
  • 目标 用最少的人力成本满足构建和维护该系统的需求 衡量指标 版本迭代——工程师团队规模 版本迭代——代码总行数 版...
    光剑书架上的书阅读 299评论 0 3
  • 第1部分:概述 软件架构的终极目标时,用最小的人力成本来满足构建和维护该系统的需求 本书的主题:描述什么是优秀的、...
    YouAreRight阅读 449评论 0 1
  • 2022年四月第18本书 阅读速度4000字/分钟1、本书主题:软件架构设计入门 2、速读建议:先看每章末尾小结,...
    师从书阅读 289评论 0 1