如何设计可扩展架构?

208 阅读1分钟

1.可扩展是为了解决可理解和可复用的问题,提升系统应对变化的能力,针对不同的层级,分为架构可扩展,应用可扩展,代码可扩展。

2.可理解是指增加了新需求,不知道这个需求对系统产生哪些影响,就会带来可理解的问题。

2.1.为了解决可理解的问题,遵从鸡蛋篮子理论的拆分法则,可以使用拆分手段.

2.2具体怎么拆分,又分为拆分形态和拆分粒度。

2.2.1拆分形态上,可以按照分层,服务,模块,插件,包。

2.2.2拆分粒度上,要平衡内部复杂度和外部复杂度,原则上先少后多。

3.可复用是指来了新需求,虽然知道对系统产生哪些影响,但是需要改动的地方比较多,那么就会带来可复用的问题。

3.1为了解决复用性的问题,可以使用封装的手段

3.2具体怎么封装,首先要预测变化,其次才能封装变化

3.2.1预测变化上,如果可以预测,那么就预测2年内的变化;如果不可以预测,那就用3次法则(1写2抄3封装)

3.2.2封装变化的技巧有规则引擎,微内核,抽象层,设计模式