我对产品设计和系统架构的要求

三个词,模块化,松耦合,可扩展。

用游戏来举例子:模块化,就是“拼图游戏”。每一个拼图方块都是独立的个体,但是在结构设计上是可以组合到一起的,就是一个完整的结构。这里边强调的是“接口”,就像每一块拼图都有可以通过接口(凹凸的形状)和其他方块拼在一起,组成一个整体。

松耦合,就是“俄罗斯方块”。不管具体形状是怎么样,个体和个体之间相互独立,只要满足规则(填满一行),怎么样都可以达成目的(消掉)。这里边强调的是“标准”,每个个体都是标准化的可以独立分解的最小单元。业务和流程在每个最小单元上是体现不出来的。如果你目前的“最小单元”可以体现业务规则或流程,说明最小单元还可以再分解。

可扩展,是满足前两者后的结果,用游戏来说,就是“乐高积木”。每一个个体都是“标准的” “独立最小单元”,通过“接口”联系在一起。组成一个“云霄飞车”。如果你对已有的云霄飞车不满意,不用全部拆掉重来,而是把不满意的地方,用新的模块替换掉就可以了。

这样一来,可以很好的应付模式的扩张,也不需经常重构。每一个模块做自己的事,各司其职,出了问题好定位,也好优化。

如果要在加一句的话,就是全球化,l18n。