设计整套系统与设计插件式独立组件,在产品设计的理念上的异同
原问题描述
在设计可插低耦合高内聚的单一系统时,和设计一个整套系统,考虑点和设计理念有什么不同
背景:目前正在参与设计一款云平台。
描述:在产品设计过程中,如何考虑单一系统之间的数据交互?在设计时要注意什么地方让单一系统受到其他的系统的影响小?电商产品中商品分类之间的关系是怎样的?分类之间是相互独立的吗`
设计整套系统和设计插件式独立组件,在产品设计上既有相同之处,又有不同之处
相同之处:无论是整套系统设计,还是组件化产品设计,都应尽量的让每个模块的功能高内聚,让每个模块之间的功能低耦合
* 当设计组件时,考虑到各种外部使用组件的业务系统的应用,如何让组件内部完成完整且标准化的逻辑处理,尽可能减少与外部被嵌入系统的加护、减少外部系统对组件处理结果的二次加工逻辑。当组件升级或改造时,外部使用组件的业务系统应该是无感的。
* 在整体的系统的产品设计上,系统中的每个功能节点可完整且独立的完成其标准化的功能,提供给同系统其他功能模块的调用,类似组件化的设计思路。
例子:我们在商品模型的整套前后台管理系统中,拆解出的模型、模板、字段、类目映射都是独立的功能模块,以上各个模块可以独立操作与配置,配置完毕后通过最终一步的关联完成全流程的贯通。这样整体的系统也可以理解成是多个组件功能组合插拔组成的一套,任意一个功能点的调优和改造,不影响另外功能点的处理。
不同之处:
组件设计与整体系统产品设计的最大区别在于,被嵌入系统可以插入、拔出此组件,而被嵌入系统可以不受到任何流程和数据上的影响。但是整体系统中的任何一个功能如果缺失(拔出),则整体系统将无法继续完成其定义的产品功能。所以,整体系统的产品设计,每个逻辑点和功能点是必须的,缺一不可的,严谨而具有逻辑性和流程性的。
另外,电商产品中商品分类之间的关系应尽可能的做到相互独立,达到类目拆解清晰明确,不给用户模糊的品类概念。
耦合、解耦合:
耦合含义:耦合就是程序中的一部分跟其他部分之间的关系。
解耦合含义:并不是字面意义上的把关联拆掉,而是把模块之间的关联放松到必要的程度。需要把必要的耦合理顺,同时尽量减
少不必要的耦合.