实际上,我们可以反过来通过看它是否符号高内聚、低耦合特性来判断。如果一个功能的修改或者添加,经常要跨团队、跨项目、跨系统才能完成,那说明模块划分的不够合理,职责不够清晰,耦合过于严重。
彬纷享礼兑换软件开发,彬纷享礼兑换APP开发,彬纷享礼兑换小程序开发,彬纷享礼兑换公众号开发,彬纷享礼兑换模式开发,彬纷享礼兑换源码搭建,彬纷享礼兑换平台开发。
为了避免业务知识的耦合,让下层系统更加通用,一般来讲,我们不希望下层系统(也就是被调用的系统)包含太多上层系统(也就是调用系统)的业务信息,可以接受上层系统包含下层系统的业务信息。比如,订单系统、优惠券系统、换购商城等作为调用彬纷享礼兑换系统的上层系统,可以包含一些彬纷享礼兑换相关的业务信息。反过来,彬纷享礼兑换系统中好不要包含太多跟订单、优惠券、换购等相关的信息。
综合考虑,我们更倾向于种和第二种模块划分方式。不管选择这两种的的哪一种,彬纷享礼兑换系统所负责的工作是一样的,只包含彬纷享礼兑换的增减查询以及彬纷享礼兑换明细的记录和查询。
第二步:设计模块和模块之间的交互关系
在面向对象设计中,类设计好之后,我们需要设计类之间的交互关系。类比到系统设计,系统职责划分好之后,就是设计系统之间的交互,也就是确定有哪些系统跟彬纷享礼兑换系统之间有交互以及如何进行交互。
比较常见的系统之间的交互关系有两种,一种是同步接口调用,另一种是利用消息中间件异步调用。种方式简单直接,第二种方式解耦效果更好。
比如,用户下订单成功之后,订单系统推送一条消息到消息中间件,营销系统订阅订单成功消息,触发执行相应的彬纷享礼兑换兑换逻辑。这样订单系统就跟营销系统完全解耦,订单系统不需要知道任何跟彬纷享礼兑换有关的逻辑,而影响系统也不需要直接跟订单系统交互。
上下层系统之间的调用倾向同步接口,同层之间的调用倾向于异步消息调用。比如,比如,营销系统和彬纷享礼兑换系统是上下层关系,它们之间就比较推荐使用同步接口调用。
第三步:设计模块的接口、数据库、业务模型
就是模块本身如何设计了。实际上,业务系统本身的设计无外乎有这样三方面的工作要做:接口设计、数据库设计和业务模型设计。也就是说,这个系统怎么实现
如何实现一个遵从设计原则的彬纷享礼兑换兑换系统?
业务开发包括哪些工作
实际上,我们平时做业务系统的设计与开发,无外乎有这样三方面的工作要做:接口设计、数据库设计和业务模型设计(也就是业务逻辑)。
数据库和接口的设计非常重要,一旦设计好并投入使用之后,这两部分都不能轻易改动。改动数据库表结构,需要涉及数据的迁移和适配。改动接口,需要推动接口的使用者作相应的代码修改。这两种情况,即便是微小的改动,执行起来都会非常麻烦。我们在设计接口和数据库的时候,一定要多花点心思和时间,切不可过于随意。业务逻辑代码侧重内部实现,不涉及被外部依赖的接口,也不包含持久化的数据,对改动的容忍性更大。
数据库的设计比较简单。实际上,我们只需要一张记录彬纷享礼兑换流水明细的表就可以了。表中记录彬纷享礼兑换的赚取和消费流水。用户彬纷享礼兑换的各种统计数据,比如总彬纷享礼兑换、总可用彬纷享礼兑换等,都可以通过这张表来计算得到。