“话说天下大势,分久必合,合久必分”。分与合是事物发展的一般规律。分带来的问题要用合的方法去解决,合带来的问题要用分的方法去解决。事物分与合的矛盾决定了它的发展。这是矛盾法则的基本原理。

软件系统的分合问题如出一辙。系统的分体现为服务拆分,包括水平拆分、垂直拆分。系统的合体现为服务的统一收口。系统的分与合正是我们一直孜孜不倦讨论的问题和实践的内容。

系统的分与合,对应了复用性与扩展性两种属性。分有利于扩展而不利于复用,合有利于复用而不利于扩展。复用与扩展是一对矛盾,复用与扩展的矛盾决定了软件系统的发展。所谓“高内聚、低耦合”的基本架构原则,也正是在这种矛盾之下我们所追求的发展方向。

既然矛盾客观存在,那么架构问题就必然有取舍,有利弊权衡。因此 ,分会带来什么失去什么,合会带来什么失去什么,是我们在每个具体的案例中,不得不认真思考的问题。