• 可扩展架构的基本思想和模式


    极客时间:《从 0 开始学架构》:可扩展架构的基本思想和模式

    软件系统与硬件、建筑系统的差异在于软件是可扩展的。通过修改和扩展,不断地让软件系统具备更多的功能和特性,满足新的需求或者顺应技术发展的趋势。改动的地方越多,投入也越大,出错的可能性也越大。因此,如何避免扩展时改动范围太大,是软件架构可扩展性设计的主要思考点。

    1、可扩展的基本思想

    一个字:
    拆,就是将原本大一统的系统拆分成多个规模小的部分,扩展时只修改其中一部分即可,无须整个系统到处都改,通过这种方式来减少改动范围,降低改动风险。
    按照不同的思路来拆分软件系统,就会得到不同的架构。常见的拆分思路有如下三种。

    • 面向流程拆分:将整个业务流程拆分为几个阶段,每个阶段作为一部分。
    • 面向服务拆分:将系统提供的服务拆分,每个服务作为一部分。
    • 面向功能拆分:将系统提供的功能拆分,每个功能作为一部分。
      从范围上来看,从大到小依次为:流程 > 服务 > 功能
      不同的拆分方式,本质上决定了系统的扩展方式

    2、可扩展方式

    由于新人老人,团队成员水平参差不齐,合理的拆分,能够强制保证即使程序员出错,出错的范围也不会太广,影响也不会太大。
    下面是不同拆分方式应对扩展时的优势。

    1. 面向流程拆分

    扩展时大部分情况只需要修改某一层,少部分情况可能修改关联的两层,不会出现所有层都同时要修改。

    1. 面向服务拆分

    对某个服务扩展,或者要增加新的服务时,只需要扩展相关服务即可,无须修改所有的服务。

    1. 面向功能拆分

    对某个功能扩展,或者要增加新的功能时,只需要扩展相关功能即可,无须修改所有的服务。

    不同的拆分方式,将得到不同的系统架构,典型的可扩展系统架构有:

    • 面向流程拆分:分层架构。
    • 面向服务拆分:SOA、微服务。
    • 面向功能拆分:微内核架构。

    PS:
    规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
    规则引擎是将业务决策与业务分离,它提供的还是决策功能,因此,规则引擎应该属于面向功能的

  • 相关阅读:
    How to create jar for Android Library Project
    Very large tabs in eclipse panes on Ubuntu
    64bit Ubuntu, Android AAPT, R.java
    Linux(Ubuntu)下如何安装JDK
    Configure xterm Fonts and Colors for Your Eyeball
    建立、配置和使用Activity——启动其他Activity并返回结果
    建立、配置和使用Activity——使用Bundle在Activity之间交换数据
    建立、配置和使用Activity——启动、关闭Activity
    建立、配置和使用Activity——Activity
    异步任务(AsyncTask)
  • 原文地址:https://www.cnblogs.com/whiteBear/p/15815840.html
Copyright © 2020-2023  润新知