zoukankan      html  css  js  c++  java
  • 一线架构师实践指南第三编阅读笔记

        在一线架构师Refined Architecture阶段中,讲到了细化架构的相关方法,最开始通过两个故事说明了细化架构的重要性。介绍了一个细化架构的方法,多视图法是贴近实践的一种方法,将一线架构师的各项具体工作涵盖其中。

        Refined Architecture是相对于Conceptual Architecture而言的,他们是架构设计的两个层次,分别对应于“概念级”和“规约级”的解决方案,Refined Architecture属于架构设计。RUP 4+1视图方法有几个重要特点:重视OO方法,Use Case驱动,强调模型的重要性。对应于上述3个特点,架构师在实践中应注意:00可以指导逻辑架构视图的设计,但00方法对物理视图等的设计指导很弱。另一方面,即使是逻辑架构的设计,也未必都是以00方法为指导的。例如,大量嵌入式软件和系统软件仍以C语言为主要开发语言,其逻辑架构设计还会以结构化方法为指导。

        5视图方法包含逻辑视图,开发视图,运行视图,物理视图和数据视图。逻辑视图负责职责的划分,开发试图负责程序单元组织,运行视图控制流组织,物理视图负责物理节点安排,数据视图负责持久化设计。

        划分子系统是架构师必做的工作,实践策略主要有三个,分层的细化,分区的引入和机制的提取。很多一线架构师最熟知最自然的划分子系统的方式就是分层的细化。为了支持迭代开发,逻辑架构设计中必须(注意是必须)引入分区。分区是一种单元, 它位于某个层的内部,其粒度比层要小。一旦架构师针对每个层进行了分区设计,“深度优先”式的迭代开发就非常自然。“机制”的定义是:软件系统中的机制,是指预先定义好的、能够完成预期目标的、基于抽象角色的协作方式。机制不仅包含了协作关系,同时也包含了协作流程。通过这三种手段的综合运用,就可以更理性、更专业的开展逻辑架构的设计。

        分层的细化、分区的引入、机制的提取这3种策略背后的4个通用设计原则:职责不同的单元划归不同子系统,通用性不同的单元划归不同子系统,需要不同开发技能的单元划归不同子系统,兼顾工作量的相对均衡,进一步切分太大的子系统。

        物理架构、运行架构、开发架构作为软件架构的不同视图,它们分别关注不同的方面、针对不同的目标和用途。物理架构设计主要有3项任务:硬件选择与物理拓扑,软件到硬件的映射关系,方案的优化。

        很多系统为了应对复杂的业务逻辑或复杂的互操作逻辑(含硬件交互),或者为了优化关键资源使用效率,而必须借助多条控制流并行或并发执行时,就须要设计运行架构。运行架构设计可能包括下列工作内容:确定引入哪些控制流,确定每条控制流的任务,处理相关问题:控制流的创建、销毁、通信机制等,进一-步考虑:控制流之间的同步关系,若有资源争用还要引入加锁机制。

        确定数据分布方案是数据架构设计的难点。常采用的数据分布式存储与处理手段主要有6中,独立、集中、分区、复制、子集和重组。

        数据分布6大策略的3条应用原则:

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

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

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

  • 相关阅读:
    《互联网时代的软件革命-saas架构设计》读书笔记
    iphone11白苹果 解决办法最简单
    idea配置(重新配置)
    力扣刷题03--无重复字符的最长字串
    力扣刷题02--两数相加
    《设计原本》读书笔记(三)
    《设计原本》读书笔记(二)
    《设计原本》读书笔记(一)
    MVC架构科技小论文
    面向服务架构及其应用
  • 原文地址:https://www.cnblogs.com/zhang12345/p/12671300.html
Copyright © 2011-2022 走看看