【框架学习】业务发展框架 - hippowc/hippowc.github.io GitHub Wiki

概述

一般来说,写业务代码都并没有什么技术含量,无非就是写下逻辑代码,开发一个web应用这么简单。但是随着业务的发展,如果有比较好的抽象和架构视角,业务的代码也是有框架可循,也是有抽象的技术在其中。

以我的经验为例子(具体产品以xx代表):xx 1.0的时候,提供一套单一的流程,对接一个单一的业务。xx 2.0的时候,业务迅速发展,突然新增很多不同的业务,每个业务的流程和设置都有些区别。xx 3.0的时候,某些业务发展壮大,希望通过独立来增强对用户的影响力,这时候对应用又会有数据隔离,多租户的需求。

痛点与思考

我所面临的问题是在业务增长期时,应用架构如何应对多变的业务。如果不假思索,那我们的进行方式就是兵来将挡,水来土掩。来了一个新业务,我们就写一套新代码,或者直接在原有的逻辑上增加if else语句。

架构的最终目的是:降低软件生命周期内的成本,提高产出 -- 架构整洁之道,对于稳定的部分,我们把它抽象出来复用

横向和纵向

关于如何去提炼和抽象一个复杂的业务系统,我们可以简单的从横向和纵向两个角度去分析。

  • 纵向角度:抽象来讲是一个行业,具体来讲是如何抽象一个流程。联系到我们的应用上就是走完一个应用从申请到上线再到下线整个生命周期。
  • 横向角度:抽象来将是一个产品,具体来讲是如何抽象一个功能。联系到我们的应用上譬如:判断一个应用是否有申请、上线、售卖的资格,为应用设置流量,应用的审核流程等。

流程模板

提供一个统一的模板,在流程的各个阶段,配置相应的信息

todo

业务与平台隔离,业务与业务隔离

运行态的代码隔离

业务的身份隔离

运行态的代码隔离