• 软件架构之细化架构阶段


    今天主要分享“细化架构”的相关知识及认识理解

    • 架构设计的步骤

      • 概念架构,构思关键问题的解决策略
      • 细化架构,以保证为开发提供足够的指导和限制
      • ..........
    • 关于“细化架构”的误区
      • “概念架构”和“细化架构”典型差异
        • 接口。在细化架构中,接口占据非常核心的地位,而概念架构并不关心明确的接口定义(只有抽象的组件和抽象的交互机制)

        • 子系统。细化架构重视通过子系统和模块来分割整个系统,并且子系统往往有明确的接口;而概念架构中只有抽象的组件,这些组件没有接口,只有职责,一般是处理组件
          数据组件或连接组件中的一种。

        • 交互机制。细化架构中的交互机制应是“实在”的,如基于接口编程、消息机制或远程方法调用等;而概念架构中的交互机制是“概念化”的,例如“A层使用B层的服务就是典型的例子

        • 方案=“项目+需求+架构”的总览,但是方案≠架构的全部
      • 架构工作的范围是非常广泛的,需要从多角度,使用多视图的办法设计
    • 那“细化架构”是什么
      • “概念架构”对应的是‘概念级’的解决方案,概念架构针对重大需求、特设需求、高风险需求,给出高层次解决方案
      • “细化机构”对应的是“规约级”的解决方案,在该阶段,通常使用多视图的方法来展示架构思想,其特点是:利于思考(分而治之),便于交流(分离了关注点)  
    • 实现“细化架构”的手段
      • 根据温昱将按照温昱思路,推荐使用五视图作为实践的参考(每个视图,一个角度)

         

      • 逻辑架构:主要工作包括划分子系统、定义接口等,通常借助接口-包图来表述。划分子系统的方法包括分层的细化、分区的引入、机制的提取。

        其相关原则为:职责不同的单元划归不同的子系统;通用性不同的单元划归不同的子系统;需要不同开发技能的单元划归为不同子系统;兼顾工作量的相对均衡,进一步划分太大的子系统(项目管理的80小时原则).此外,定义接口时一定不能自说自话,需要足够的沟通

      • 运行架构:在涉及大量并发时,需要考虑,不常用。
      • 开发架构:这部分主要是开发语言、相关框架的选择,项目文件的结构和形式,在实际中很重要,统一和合理的结构可以大幅提升在软件开发中,维护成本实际上是最大的,因此合理的重用非常重要

      • 物理架构:这部分的思维重点是"开销"和争用",因此架构的目标就是降低开销和避免征用
      • 数据架构:数据的分布方案是一个难点,通常可以借助一下6个策略

    本博客为学习温昱《一线架构师实践指南》的“细化架构”学习总论,之后会详细介绍“五视图”的策略

  • 相关阅读:
    解决Linux下Qt程序报『QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号』错误
    中介者模式之我们结婚吧
    POJ 2141 Message Decowding(map)
    Cocos2dx之Box2D具体解释 设置物体回复力
    Android之Window
    opencv源代码分析:cvCreateMTStumpClassifier最优弱分类器的代码框架
    LeetCode总结,二分法一般性总结
    Change Number to English By Reading rule of money
    在多台PC上进行ROS通讯-学习笔记
    编程之美初赛第二场 奇妙的数列
  • 原文地址:https://www.cnblogs.com/KYin/p/12670625.html
Copyright © 2020-2023  润新知