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封装变化的技巧有规则引擎,微内核,抽象层,设计模式