【软件架构设计】第二版 读书笔记

为什么要看架构设计呢?

  1. 与经验丰富的开发人员尽量达到思想上的同步,充分理解别人的设计
  2. 架构是内,写代码是外,一个好的系统,必须是由内而外设计出来的。(可以少走很多弯路,也不至于最终程序臃肿得令自己都难以下咽维护)

第二章

  1. 架构的定义可以分为两派:
  2. 组成派:架构=组件+交互
  3. 决策派:架构=一组重要决策
    需要理解Adapter设计模式

第三章

原来网页打开可以编辑
. 组成

第七章 领域建模

领域模型决定了系统的功能范围
领域模型影响着系统的可扩展性

对于uml而言,领域模型常用以下两种图表示

  • 类图
  • 状态图

领域建模流程推荐:

  • 梳理词汇表。也就是专业术语,参考之前项目的,或者网上搜查类似项目的。’ 词汇表:以拍卖系统为例,有拍卖,拍卖信息,拍卖项,拍卖项信息,起拍价,成交价,卖家,买家,成交等’
  • 建立类图。关照核心概念的类图即可,刻画不词汇表之间的关系,如商品,拍卖商品,买家,卖家,成交。
  • 建立状态图:如商品状态,商品从初始到最终成交成功或者失败的状态

对于第七章的理解,建议多看看书上的案例

第八章 确定关键需求

1.什么决定架构
书中认为
需求=功能+质量+约束
需求的三个方面都会影响架构设计
而 关键需求 决定架构, 其余需求 验证架构
2.如何确定关键需求

  • 确定关键质量:考虑市场因素,需着重提高的哪些方面的质量;给上面这些质量排序和关系梳理(依赖关系,矛盾关系);最后验证满足各种约束性需求(经济因素,客户群要求,公司现状,未来发展,其他因素)。
  • 确定关键功能:四条启发规则,核心功能,必做功能,高风险功能,独特功能。

第九章 概念架构设计

1.概念架构是什么?
书上认为:概念架构是直指目标的设计思想,重大选择。

  • 概念架构满足“架构=组件+交互”
  • 概念架构是对高层组件的职责进行笼统的界定
  • 概念架构不应该涉及接口细节

2.概念架构的三大特征

  • 直指目标

  • 设计思想

  • 重大选择
    举个例子:腾讯qqvedio高性能

  • 直指目标:高性能

  • 设计思想:不同功能垂直分离(针对视频,视频缩略图,静态web内容,动态web内容分别对峙)

  • 重大选择:首先垂直划分结构,而非水平分层

再举个例子:微软mfc架构_简化开发

  • 直指目标:提供比使用win32 API更方便的应用开发支持。
  • 设计思想:应用支持层,抽象引入层和win32封装层
  • 重大选择:放弃AFX设计,转而采用首先封装win32 Api的策略

第十章 细化结构设计

学会运用 2视图方法(第三章内容),再进阶到5视图方法

  • 2视图指的是:逻辑视图+物理视图
  • 5视图复杂一些:逻辑视图-职责划分,开发视图-程序单元组织,运行视图-控制流组织,物理视图-物理节点安排,持久化设计-数据视图。

5视图对应15个设计任务
逻辑架构

  • [设计任务]模块划分
  • [设计任务]接口定义
  • [设计任务]领域模型细化

开发架构=技术选型+文件划分+编译关系

物理架构=硬件分布+软件部署+方案优化

运行架构=技术选型+控制流划分+同步关系

数据架构=技术选型+存储格式+数据分布

第十一章 架构验证

  1. 原型技术
    原型法可分为 水平原型(又叫 行为原型)和垂直原型(又称为结构原型),抛弃原型(还叫探索原型)和演进原型

第十二章 粗粒度功能模块划分

1 功能树
借住功能树进行功能模块划分

第十三章 如何分层

1 分层架构
1.1 三层架构
常见模式:展现层,业务层,数据层
概念介绍:
展现层 或称为表现层,用于显示数据和接
收用户输入的数据,为用户提供一种交互式的操作界面
业务层 或称为业务逻辑层,用来处理各种功能请求,实现系统的业务功能,是一个系统最为核心的部分
数据层 或称为数据访问层,主要与数据存储打交道,例如实现对数据库的增删查改等操作

层间关系:
展现层会向业务层传递参数,发出服务请求,并获取业务层返回的信息显示在界面上
业务层接收展现层的命令,解析传递过来的参数,判断各种合法性,并具体实现功能的各种‘运算’要求,返回展现层所要的信息
数据访问层不能直接被展现层直接调用,而必须通过业务层来调用。

建议看看MVC和MVP,类似差不多,一个理解了就可以举一反三。

1.2 四层架构
UI SI PD DM
UI层(User Interface):用户界面层,负责封装与用户的双向交互,屏蔽具体交互方式。

SI层(System Interaction):系统交互层,负责封装硬件的具体交互方式,以及封装外部系统的交互。

PD层(Problem Domain):问题领域层,负责问题领域或业务领域的抽象,领域功能的实现。

DM层(Data Domain):数据管理层,负责封装各种持久化数据的具体管理方式,例如数据库系统,二进制文件,文本文档,xml文档,flash存储结构等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoomCon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值