zoukankan      html  css  js  c++  java
  • 一线架构师实践指南---总结

    系统架构 --- 架构分割

    高层分割

    传统的“架构=模块+接口”忽略了多视图和概念架构设计两点。多视图指的是软件系统的架构设计还可能涉及开发视图、运行试图、物理视图、数据视图等多方面的考虑。而对于规模稍大的系统,必须根据重大风险(包含功能、质量、约束)进行有针对性的进行概念架构设计。

    高层分割的两种实践套路:

    一、切系统为系统:进行两级高层切分,一步步将大系统切分更小一级的系统,最后对更小一级的系统进行切分为子系统

    实践中需考虑到“切系统为系统”:①当系统覆盖的功能范围比较广泛时;例如BOSS系统涵盖网络管理、服务开通、计费、客户关系管理等众多的功能②当系统须要部署在比较复杂的硬件环境中时;例如一卡通系统要保障其复杂功能,要支持考勤机、通道机、自助查询机、PC机等多种类硬件

         借助鲁棒图能够初步识别功能背后的职责,就可以规划高层切分的具体方式

    二、切系统为子系统:最常见的方式就是分层

    经典的4层架构方式

     

    3+1种”流派

    Layer:逻辑层:重视职责的划分,职责之间常常是上层使用下层的关系

    Tier:物理层:指的是“能分布”在不同机器上的软件单元,不同物理层之间必须有跨机器访问的能力---可以通过远程调用、通信协议等方式

    逻辑层     ---> 物理层   --->  一台计算机

    ③按通用性分层:将通用性不同的部分划归不同的层,以此作系统的总体切分方式

    ④技术堆叠:基于分层架构提供的进一步说明

    要趁早考虑非功能目标

    重大需求塑造概念架构,“重大需求”应该涵盖功能、质量、约束三类需求中的关键部分

    通过写 目标-场景-决策表可以理性的应对非功能需求

     

    细化架构

    细化架构和概念架构之间的的典型差异

    1. 接口:在细化架构中,接口占据非常核心的地位,在概念架构并不关心明确的接口定义
    2. 子系统:细化架构重视通过子系统和模块来分割整个系统,并且子系统有明确的接口,而概念架构中只有抽象的组件,这些组件没有接口只有职责。
    3. 交互机制:细化架构中的交互机制是具体实在的;例如基于接口编程。概念架构中的交互机制是概念化的;例如A层使用B层的服务。

    多视图

     

    架构师仅进行到概念架构层面对开发是远远不够的。RA阶段是架构设计的两个层次,“概念级”和“规约级”解决方案

    多视图实际意义:1.利于思考,采用分而治之的思维方式  2.便于交流

  • 相关阅读:
    metadata的使用以及简单的orm模式
    python的cache修饰器
    聊天服务的设计随想
    cherrypy入门
    用python做分布式定时器
    cherrypy & gevent patch
    Python Tornado简单的http request
    连接池的一些感悟
    企业系统架构评估标准
    Nginx与python web服务配置(Uwsgi& FastCGI)
  • 原文地址:https://www.cnblogs.com/zjl-0217/p/12669922.html
Copyright © 2011-2022 走看看