可落地,可外显

可落地:是我们所学的编程思想可以直接运用到日常代码当中的

可外显:代码是否使用编程思想

编程思想:能够使我们的代码,去承载项目中很复杂的业务逻辑,并且使我的代码看起来非常的简洁易懂,并且易于扩展

承载、业务逻辑、易于扩展,这三个使核心目标

首先承载、业务逻辑,代码基于使用编程思想的代码,才能够承载很复杂的业务逻辑。

举例:

淘宝

淘宝可分为两大类:商家卖货,买家买货。

这两大类又可以分为若干个小类,而若干个小类有由若干个其他的类组成。

而所谓的业余逻辑就是我们的用户实现或完成一个功能的最简单、最小的闭环的。

业务逻辑由:流程环节,人机交互,数据交互

而流动环节决定什么时候需要人机交互、什么时候需要数据交互。
人机交互产出“命令/意图”,出发环节其迁移;数据交互返回“事实/事件”,反馈给流程决定后续分支。

举例:订单系统

订单系统:用户购买商品生产订单生成在进行支付生产支付订单支付完商家发货用户收到生产确认收货交易完成

这还不够,比如订单生产系统下还有业务逻辑。

而这先都运用到了业务逻辑的流程环节,人机交互,数据交互。

订单生成业务逻辑要先确认流程环节:

1️ 用户选择商品、填写数量

提交订单请求

进入订单创建流程

2️ 商品信息校验

查询商品是否存在

查询商品当前价格

查询商品是否参与活动

检查商品是否允许购买(上下架状态)

3️ 优惠信息处理

查询用户可用优惠券

检查满减、限时折扣等活动

计算可用优惠金额

校验优惠券使用规则(有效期、限购、是否冲突等)

4️ 会员权益计算

查询会员等级

计算会员专属折扣

判断是否可享受积分抵扣

应用会员价、包邮资格等

5️ 库存减少(库存预扣)

校验库存是否足够

扣减商品库存(预扣或最终扣减)

若库存不足则订单创建失败

6️ 运费计算

根据收货地址计算运费

匹配快递方式规则

判断是否符合包邮条件

计算最终运费金额

7️ 生成订单

汇总商品金额、优惠金额、会员折扣、运费

得到最终应付金额

写入订单数据库(订单号、用户信息、商品清单等)

返回订单确认信息

最后并且使我的代码看起来非常的简洁易懂,并且易于扩展。

就是便于需求的改变

可分为两种:添加新产品功能,对产品原功能进行业务修改

只添加新代码,不修改源代码/在修改原功能的基础上,不影响以其功能的执行