
代码重构
文章平均质量分 87
SZleoWang
这个作者很懒,什么都没留下…
展开
-
异步处理需要消息补偿闭环
使用类似 RabbitMQ、RocketMQ 等 MQ 系统来做消息队列实现异步处理,虽然说消息可 以落地到磁盘保存,即使 MQ 出现问题消息数据也不会丢失,但是异步流程在消息发送、 传输、处理等环节,都可能发生消息丢失。此外,任何 MQ 中间件都无法确保 100% 可 用,需要考虑不可用时异步流程如何继续进行。 因此,对于异步处理流程,必须考虑补偿或者说建立主备双活流程。 我们来看一个用户注册后异步发送欢迎消息的场景。用户注册落数据库的流程为同步流程, 会员服务收到消息后发送欢迎消息的流程为异步流程。原创 2021-11-25 15:37:17 · 2156 阅读 · 0 评论 -
代码重复的3种处理方法1-用工厂模式 + 模板方法模式
1、利用工厂模式 + 模板方法模式,消除 if…else 和重复代码 假设要开发一个购物车下单的功能,针对不同用户进行不同处理: 我们的目标是实现三种类型的购物车业务逻辑,把入参 Map 对象(Key 是商品 ID,Value 是商品数量),转换为出参购物车类型 Cart。 先实现针对普通用户的购物车处理逻辑: 如果多处重复代码实现完全相同的功能,很容易修改一处忘记修改另一处,造成 Bug; 有一些代码并不是完全重复,而是相似度很高,修改这些类似的代码容易改(复制粘 贴)错,把原本有区别的地方改为了一样。原创 2021-11-15 17:27:55 · 825 阅读 · 0 评论