点赞是互联网中常见的交互方式,系统根据用户的点赞操作来跟踪用户的行为,并对用户的喜好进行分析。
系统角色主要涉及 点赞发起者 和 点赞目标对象。
系统功能,主要围绕系统角色展开。
点赞发起者点击“赞”按钮,点亮“赞”操作,再次点击,取消之前的“赞”操作。
首先,需要明确实体的名称,在这里,我们简单命名为 Like。
Like 代表的是当前点赞状态,对于多次点击,只会记录最后的结果,而中间的过程数据丢失了。
最简单的计数功能,便是通过 SQL 对 Like 进行 “count group by” 来完成,但在高并发系统中,group by 是一大忌讳。
用例走查,主要从用例角度,验证当前设计是否满足业务需要。
LikeLogger 不直接服务于业务,仍旧有很大意义。
到现在,整个系统的核心组件就设计完成了,接下来,我们需要将其组装起来,以形成一个可用系统。
点击行为是典型的写操作,需要对写操作进行优化。
获取计数是典型的读操作,需要对读操作进行优化。
在系统中 Like、Logger、Count 是三个聚合根,我们需要保证三者的数据一致性。
在常规操作中,我们会在操作 Like 后,直接调用 Logger、Count 相关接口进行业务操作。但在 DDD 中,是绝对不允许的,一个操作只能对一个聚合根进行处理,聚合根之间的同步只能基于事件通过最终一致性解决。
考虑到系统读写的扩展性,在此,我们使用消息队列和外部事件完成数据一致性保障。
您需要 登录 才可以下载或查看,没有账号?立即注册
使用道具 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )
GMT+8, 2025-5-30 13:34 , Processed in 0.243211 second(s), 26 queries .
Powered by Discuz! X3.5 Licensed
© 2001-2025 Discuz! Team.