怎样定义系统模块之间的边界?

2024-06-29

本文主要讨论如何合理划分系统模块之间的界限,以提高系统效率,优化用户体验,保证模块之间相互独立、易于扩展的技术问题。


一般来说,一个庞大的系统可以分为多个子系统。这里区分的原则是什么,后面每个子系统的详细功能划分原则是什么?比如商品模块,是否应该添加大量的营销信息,如果添加,后面的产品和营销模块的重叠度会越来越高,营销模块的一些信息也要从商品模块中获取,系统延伸和客户体验都不是特别好,所以如何设置模块之间的系统边界,如何把握一个度。


01


考虑到客户体验相同角色的功能,最好放在一起,以免多个系统之间来回切换业务,高效完成工作。备货不是考虑系统边界的重点,因为即使是不同的模块,也可以在前端在一个页面上显示多个模块信息。


02


系统逻辑不应该因为一个新的功能而混合领域模型。原始系统应该大大重构。在这种情况下,模块的粒度一般不够细。系统设计中混合了很多领域模型,业务会发生变化。当业务发生变化时,逻辑可以相应地调整。就像一堆砖头,可以建造高层建筑。但如果砖头被封装成墙壁,但不同的高层建筑需要不同的墙壁。此时,有必要重建这些最小的模块(墙壁)。


03


每一个模块之间的功能藕合较低,互不影响,或影响最小化。比如上面提到的商品模块和营销模块,商品模块的最小粒度就是商品,营销模块的最小粒度就是营销活动。活动发生了变化,我的商品还是那些商品,还是不变,活动需要相关商品,直接相关就完成了。这种结构很好,如果把商品和营销结合起来,调整产品信息,相应的一些营销活动的配置逻辑也要跟着调整。


04


如果一个模块挂在模块之间,最担心的是影响其他模块。比如在支付环节,如果商品营销信息没有出来,就根本下不了订单。好吗?能否与营销模块解耦?即使一个模块有问题,其他模块也能正常运行。


05


从技术角度来看,模块的直接技术可以延伸。模块越直接,延伸越好。在延伸的同时,不会受到太多其他模块信息的影响。因此,技术学生也需要介入模块之间的边界。


本文由大家作为产品经理作者【蔡锦海】,微信微信官方账号:【锦海说】,原创 / 授权 发布于每个人都是产品经理,未经许可,禁止转载。


题图来自 Unsplash,基于 CC0 协议。


本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com