《一线架构师实践指南》第三章阅读笔记

从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;在进行细化架构的设计,保证为开发提供足够的指导和限制被人们广泛使用
之所以需要细化架构,是因为概念架构难以支持并行开发。

  细化架构的方法:RUP 4+1多视图方法(逻辑架构,开发架构,物理架构,数据架构,运行架构(与之对应的要写概要设计文档))

  多视图方法要求“兼顾多个视图设计之间的一致性”。例如:要考虑职责、程序单元、部署节点等要素之间的相互影响。

  多视图方法的实际意义:利于思考(因为分而治之的思维方式);便于交流(因为在一定程度上分离了涉众关注点)

  多视图方法不是OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)分支。无论是OO方法,还是结构化方法,都远未涵盖架构设计的全部。

  逻辑架构和物理架构不是两个阶段,而是同一阶段的要考虑的两个方面,即两个视图。

用5视图方法梳理架构:

 

 

 5视图方法包含视图和其”思维立足点“:

  逻辑视图(职责划分)

  开发视图 (程序单元组织)

  运行视图(控制流阻止)

  物理视图(物理节点安排)

  数据视图(持久化设计)

逻辑架构中划分子系统的三种策略

  • 分层的细化

   

  • 分区的引入

    架构中引入分区,是为了支持深度优先的迭代开发。分区是一种单元,位于某个层的内部,其粒度比层要小。 

  • 机制的提取

    基于接口或抽象类的协作是机制,基于具体类的协作则算不上是机制

    

子系统划分需要分层细化、分区引入、机制提取三种策略综合运用,三管齐下。

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

  职责分离原则;

  通用专用分离原则;

  技能分离原则;

  工作量均衡原则。 

物理架构

  3项任务:

    硬件选择与物理拓扑

    软件到硬件的映射关系

    方案的优化

运行架构

  工作内容:

    确定引入哪些控制流,确定每条控制流的任务,处理相关问题:控制流的创建、销毁、通信机制等以便进一步考虑:控制流之间的同步关系,若有资源争用还要引入加锁机制

  其中控制流图是关键,在实践中,最常用于实现控制流的手段有3种:进程,线程,中断服务程序。

开发架构

  工作内容:

    将“逻辑职责”映射为“程序单元”;开发技术选型;“程序单元”间关系。

数据架构

  难点:数据分布

  数据分布的六种策略:

    独立 Schema( Separate-schema)

    集中( Centralized)

    分区( Partitioned)

    复制( Replicated)

    子集( Subset)。

    重组( Reorganized)

  数据分布策略的三条应用原则:

    把握系统特点,确定分布策略(合适原则)

    不同分布策略,可以综合运用(综合原则)

    从“对吗”、“好吗”两方面进行评估优化(优化原则)

参考博文:https://www.cnblogs.com/janeszj/p/12661533.html

原文地址:https://www.cnblogs.com/yuanxiaochou/p/12672485.html