一线架构师实践指南Refined Architecture阶段阅读笔记

  通过阅读这部分,学到如下:

1.关于概念架构和细化架构

  1)层次:系统 用户 业务 角度:功能 约束 质量属性
  2)架构=组件+交互
  3)概念架构仅关注高层组件,对高层组件的“职责”进行了笼统的界定,并给出了高层组件之间的相互关系,其不涉及接口细节(只有抽象组件和抽象交互机制)。
  4)而在细化架构中接口占据非常核心的地位,且细化架构重视通过子系统和模块来分割整个系统,有“实在的”交互机制,如基于接口编程、消息机制或远程方法调用。

2.贴近实践的多视图方法

  1)运行架构(进程、线程)
  2)逻辑架构(接口的定义、子系统的划分、(当你用C)结构化方法的模块、逻辑层(Layer))
  3)物理架构(服务器的选型、物理层(Tier))
  4)开发架构((并行开发需要)源程序目录)
  5)数据架构(数据分布与数据库Schema (没选RDBMS)文件格式 (嵌入式系统)Flash存储结构)
  6)逻辑架构 物理架构是架构设计同一阶段中必须要同时考虑的两个方面

  7)五个视图的思维立足点 :
    职责划分(逻辑视图) 程序单元组织(开发视图) 控制流  组织(运行视图) 物理节点安排(物理视图) 持久化设计(数据视图)

3.关于逻辑架构

  1)划分子系统策略:
    分层的细化、分区的引入、机制的提取
  2)分层的细化(分层细化 横向):
    展现层—展现层 控制层
    业务层—业务接口层 业务实现层 业务实体层
    数据访问层—数据访问层

  3)分区的引入(分区还在一层 纵向)
  4)机制的提取(基于接口或抽象类的协作是机制)(基于具体类的协作算不上机制):
  机制是一种特殊的子系统
三种手段位于不同的维度,相辅相成

  5)子系统划分:4个重要原则

  6)接口的设计1.接口的设计采用分而治之(分是手段 合是目的)
2.为了实现软件系统的一系列功能,这个软件单元要和其他哪些单元如何协作。
协作决定接口
  7)质疑驱动的逻辑结构设计:(这里采用课件 整理好后的书上的内容)

  • 划分子系统,设计逻辑架构过程:
    • 根据当前理解划分(从概念架构开始)
    • 找到某功能的参与单元(运用三手段进行子系统划分)
    • 让它们协作完成功能(职责协作)
    • 质疑并推进设计的深入(定义包-接口图)



4.关于物理架构、运行架构、开发架构

  1. 物理架构主要设计:
  • 硬件选择与物理拓扑
  • 软件到硬件的映射关系
  • 方案的优化
  1. 运行架构的设计内容:(控制流图是关键)(实现控制流三种手段:进程 线程 中断服务程序)
  • 确定引入哪些控制流;
  • 确定每条控制流的任务;
  • 控制流的创建、销毁、通信机制等;
  • 控制流之间的同步关系,加锁机制等
  1. 开发架构的设计内容:
  • 将“逻辑结构”映射为程序单元
    • 要自主编写的源程序
    • 可重用的库、框架
    • 其他方式(shell脚本,平台配置文件)
  • 开发技术选项:开发语言,平台工具
  • “程序单元”间关系
    • Project划分
    • Project目录结构
    • 编译依赖关系

  除了上述内容 我还了解到了重用的重要性(重用的目标是节省成本,关键是重用测试)
  还有就是始终要考虑非功能需求(质量属性)以及约束

猜你喜欢

转载自www.cnblogs.com/zzstdruan1707-4/p/12669829.html