来源:////
欢迎,您将获得:独家项目实践/Java学习路线/一对一问题/学习登机手续/每月书礼物
新项目:模仿(微服务体系结构)正在更新...,全栈前端和后端分离博客项目2.0版本已完成,演示链接:。整个过程是手动触摸的,后端 +前端完整堆栈开发,解释从0到1的每个功能点的开发步骤,并在1V1中回答问题,直到启动项目为止。目前,已更新了261个部分,总共有41W+单词。说明图片:1806年的图片,他们仍然会遇到很多乐趣……将来会有更多的新项目。目的是完成Java领域中的所有典型项目,例如 Sale , Mall,IM Im 等。
4。实用摘要
害怕经营的业务困扰着老手。
1。业务背景
通常在业务系统中,与付款相关的功能将在越来越多的程度上涉及;对于一些缺乏经验的学生来说,最紧张的事情是面对这种付款结算逻辑,因为此过程中的任何细节都可能导致异常和解;
发生错误后,如果您想修复该过程,时间成本也很高,并且还涉及错误的数据的升级,这最终可能导致不清楚的帐户的结果,然后需要手动干预;
图片
在付款情况下,它不仅涉及许多复杂的企业,和解规则,超长流程和第三方对接,而且还涉及许多技术细节,例如:交易管理,异步处理,重试机制,锁定等;让我们分析下面的具体详细逻辑。
2。付款业务
1。过程拆卸
当面对复杂的企业时,最基本的能力是知道如何将过程分为模块,很好地管理每个模块,然后考虑如何将整个过程连接起来以形成思想和经验以解决问题;
图片
如图所示,它是交易方案的常见分解,可以将其大致分为四个模块:
在这里,我们只是从常规交易过程中分析。实际的详细说明将比传说复杂得多。尽管业务细节不同,但处理想法通常是相同的。然后,根据每个模块的设计过程计时图表,计划节点之间的连接和合作;
2。过程计时
通过定时图的设计,我们分析了每个节点在连接和合作期间应如何处理它。在付款业务中,通常将其分为三个核心阶段:
图片
实际上,在对业务有清晰的理解和分裂后,很好地设计了时间安排过程,以使复杂的方案看起来更简单,然后设计每个节点的数据结构;
3。结构设计
基于上述业务方案分析和拆卸,以及流程正时图表的介绍,很容易输出基本的维度结构设计。下图可以用作参考:
图片
即使您查看了上面的简单设计,也可以感觉到付款业务的复杂性,更不用说在添加折扣规则(例如红色信封或完整折扣之类的折扣规则)之后,可以想象复杂性;
当然,如果有明确的开发规范,则在复杂的版本中,所有开发都必须输出业务分解和分解想法,时机和结构设计,然后在统一审查后进行编码,以便即使复杂的业务也将具有良好的质量保证。
3。相关业务
从主要付款逻辑中对过程的上述分析。实际上,所涉及的业务远远超出了过程中的提到。以通用的电子商务方案为例,还有商品管理,库存管理,交易中的物流管理和支付对接涉及嵌入优先规则等。
产品管理
图像优惠券规则
图片
此处简短描述的产品和优惠券业务与付款过程密切相关,例如拆除订单后的库存不足,因此需要删除产品;在付款中使用优惠券的策略以及退款的处理方法等。
4。实用摘要
最后,从技术实施的角度来看,我们将在付款过程中总结一些关键问题:
许多复杂的业务管理需要长期的迭代过程,但是前提需要牢固地掌握核心逻辑。对业务的理解是从复杂到简单的过程,而业务的实施是从浅层到深处的过程,即分析和理解,再到实施,再到探索和创新。
欢迎,您将获得:独家项目实践/Java学习路线/一对一问题/学习登机手续/每月书礼物
新项目:模仿(微服务体系结构)正在更新...,全栈前端和后端分离博客项目2.0版本已完成,演示链接:。整个过程是手动触摸的,后端 +前端完整堆栈开发,解释从0到1的每个功能点的开发步骤,并在1V1中回答问题,直到启动项目为止。目前,已更新了261个部分,总共有41W+单词。说明图片:1806年的图片,他们仍然会遇到很多乐趣……将来会有更多的新项目。目的是完成Java领域中的所有典型项目,例如 Sale , Mall,IM Im 等。
1. 我的私密学习小圈子~
3. MySQL 用 limit 为什么会影响性能?有什么优化方案?
4. 微信扫码登录如何设计?
最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。
PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。
点“在看”支持小哈呀,谢谢啦