II - 需求开发

172 阅读3分钟

II(1):SKU 领域模型的改造

问题:

  • 基础概念:什么是 SKU?什么是领域模型?
  • 细节深入:为什么需要改造 SKU 领域模型?是如何结构化三方信息的?
  • 其他问题:你觉得这个需求的哪点在哪?

回答

1. 什么是 SKU?什么是领域模型?

SKU:stock keeping unit,是指最小库存单元。 举个例子,一杯珍珠奶茶根据它的冷热、是否加珍珠、椰果、全糖、三分糖、五分糖等等,可以划分为多个不同 SKU。一个 SKU 最终对应于填单页上购买的一件商品

领域模型:是一种表达与传递领域内知识的模型,它的载体包括 UML 图、代码、文档。 本次所做的改造 SKU 领域模型就是往其中添加三方信息,使其具有表达三方信息的能力。 SKU 领域模型除了三方信息外,还包括 SKU 的基本信息,例如:名字、ID、对应于商品的 ID,以及一系列的资源信息等

2. 为什么需要改造 SKU 领域模型?是如何结构化三方信息的?

改造 SKU 领域模型的原因是为了支持业务的需求,需求的背景是业务方希望平台侧能够支持三方信息的留存。

为什么要平台侧支持留存三方信息的能力?

  • 符合平台的定位。平台的定位是数据中台,具有存储符合业务范围内的数据的能力
  • 简化流程。最初,是由各个业务 BP 独自对接营销平台并创建好三方信息后,再与平台侧进行下一步对接,但平台侧也会与营销平台进行对接。当平台侧具有结构化三方信息的能力后,增量业务也无需重复的对接营销平台,只需要把相关信息传到平台侧,再由平台侧对接营销平台即可

如何结构化三方信息的? 这个比较简单,就是往 SKU 领域模型新增三方信息对象。这个对象由主键 ID、描述的商品 ID、itemId、itemType 等组成(itemType 指三方信息描述的类型,1 - SKU,相应的 itemId 就是 skuId)

3. 你觉得这个需求的哪点在哪?

这个需求的难点在于模型上的理解,因为这是我做的第一个需求,当时对于平台内模型不太熟悉,最初并不知道如何改造、何处改造。

经过一段时间学习后,学到 SKU 领域模型是具有描述三方信息的语义的,最终找到了切入点,从而完成这个需求。

除此之外,因为这个改动涉及的模块是 dao 层和 service 层,涉及到领域模型和数据模型的转换,我把代码中涉及到这块的转换逻辑都提取出来,写成一个工具类。这样做简化了代码,更加清晰

II(2):编写工具类支持 QA 修复数据

关键点

收敛读写接口,使用代理模式收敛新旧表 dao,并使用适配器类完成不同接口使用同一读写方法的目的。核心:代理模式和适配器模式的使用


参考: