使用伪代码辅助业务逻辑的设计

这几天在做一个急活,很短时间内就需要上线,并且其中有一个功能点的业务逻辑很绕,很不好实现,当然,也是有办法在短时间内搞定复杂业务逻辑的设计的。我是使用了”伪代码辅助分析”这种方式来做的。

将想要实现的业务逻辑先不考虑和编程语言语法强关联,先从基本的思维逻辑入手,用伪代码尝试写出整个业务逻辑的流程。然后在将代码用最 low 的方法按照思路流水般写出来,然后在写的同时,考虑哪些部分可以复用,将其提取出来,这样一步一步就能将一下子想不明白的复杂业务逻辑转化为代码了。当然在中间需要不断和产品同学以及一个小组里的同事反复交流、确认,这样人多力量大,也能够辅助自己分析清楚业务逻辑。

一点点实践中的体会,记录下来,算是小的总结。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
* 保存分销VIP购买分成
* <pre>
* 收益计算部分的业务逻辑如下:
* 特殊的情况:
* 教练永远是 40% 公司永远是 20%
*
* 一般的情况,收益需要计算两部分:
* 一部分是自己的最终收益 = 自己本身的比例 + 所有下级的比例之和
* 另一部分是给自己所有上级带来的收益(上供),这个是需要考虑断层的
*
* switch(介绍人等级){
* case 1 { //教练
* 自己干活拿的佣金比例 = 自己本身的比例 + 所有下级的比例之和
* 40%
*
* 上供
* 4 3 2
* 4 3 (3拿 15% + 15%) 断层情况1
* 4 2 (4拿 10% + 15%) 断层情况2
* }
*
* case 2 { //驾校
* 自己干活拿
* 40% + 15%
*
* 上供
* 4 3
* 4 (4拿 10% + 15%) 断层情况
* }
*
* case 3 { //经理人
* 自己干活拿
* 40% + 15% + 15%
*
* 上供(无断层)
* 4
* }
*
* case 4 { //高级经理人
* 自己干活拿
* 40% + 15% + 15% + 10%
*
* 无上供
* }
* }
*
* </pre>
* @param studentOpenid 购买 VIP 的学员的 openid
* @param orderId 学员购买 VIP 生成订单的 id
*/
void save(String studentOpenid, long orderId);