Spartacus 4.0 升级到 5.0 后 checkout library 的设计变化

简介: Spartacus 4.0 升级到 5.0 后 checkout library 的设计变化

在 Spartacus 4.0 中,通过从原始 storefront 库中提取 checkout 功能,创建了一个新的 checkout library 实现。


然而,这个新的库只有一个包含所有结帐流程的入口点,即使它们未被使用(例如scheduled replenishment flow)。


但是,在 Spartacus 5.0 中,checkout 库已进一步分离为不同的业务逻辑功能,目的是使构建出的 Application Bundle 尺寸更小。


除了创建不同的入口点以减小 Application bundle 大小之外,NgRx 依赖项已大部分被删除(除了一些在事件侦听器中隔离的 NgRx 操作),这是通过将它们替换为 Commands and Queries 来完成的。


image.png


从 NgRx 转换为 Commands and Queries 的好处如下:


  1. 所有功能都在类中,因此更容易扩展。这一点与 NgRx 不同,在 NgRx 中,我们如果没有花费精力去拆除 Spartacus 中深度嵌套的 NgRx 模块,就无法真正扩展 reducer 或 Effect.

  2. 命令能够以更具 reactive 的特性去构建,并将执行结果作为同一方法调用的一部分返回。

  3. 和命令类似,监听loading、error、数据状态的变化都更简洁,只需要调用一个方法,查询一次就可以得到所有结果。

dismantling module是一种将软件系统中的功能模块分解为更小、更独立的部分的过程。在这个过程中,大型功能模块会被分解为更小的、更具体的子模块,每个子模块都有自己的职责和功能。


dismantling module有助于改善软件系统的可维护性、可重用性和可测试性。通过将大型功能模块拆分成更小、更独立的部分,可以使代码更易于理解、修改和维护。此外,子模块的复用性也得到了提高,因为它们可以被其他模块所使用。


在软件开发中,dismantling module通常是一个迭代过程,可以通过多次分解和重组模块来逐步改善软件系统的结构和质量。在这个过程中,开发人员需要仔细评估每个模块的职责和功能,并考虑如何将其拆分成更小、更具体的子模块。最终,通过不断的改进和优化,可以构建出高效、可维护和可扩展的软件系统。



相关文章
Spartacus 4.0 升级到 5.0 后 checkout library 的设计变化
Spartacus 4.0 升级到 5.0 后 checkout library 的设计变化
|
存储 JavaScript 前端开发
架构-单一代码库-monorepo-pnpm-workspace:基本使用
架构-单一代码库-monorepo-pnpm-workspace:基本使用
582 0
|
2月前
|
API 开发工具
Flutter升级更新2.0后常见报错处理
Flutter升级更新2.0后常见报错处理
107 2
|
JavaScript 前端开发 应用服务中间件
SAP UI5 本地开发时 ui5.yaml 文件对构建 Release 版本应用目录的影响分析试读版
SAP UI5 本地开发时 ui5.yaml 文件对构建 Release 版本应用目录的影响分析试读版
|
存储 缓存 JavaScript
本地构建和发布 Spartacus libraries 所需要的两个工具
本地构建和发布 Spartacus libraries 所需要的两个工具
SAP Spartacus checkout 流程的扩展(extend)实现介绍
SAP Spartacus checkout 流程的扩展(extend)实现介绍
|
JavaScript 测试技术
SAP 电商云 Spartacus UI 回归测试 b2b-replenishment-checkout-flow.core-e2e-spec.ts
SAP 电商云 Spartacus UI 回归测试 b2b-replenishment-checkout-flow.core-e2e-spec.ts
|
监控 JavaScript 测试技术
SAP 电商云 Spartacus UI 回归测试 checkout-flow.core-e2e-spec.ts
SAP 电商云 Spartacus UI 回归测试 checkout-flow.core-e2e-spec.ts
|
缓存 JavaScript 前端开发
SAP UI5 Tools 运行了 fiori add deploy-config 命令之后,工程文件发生了哪些变化
SAP UI5 Tools 运行了 fiori add deploy-config 命令之后,工程文件发生了哪些变化
|
JSON 前端开发 API
【Ant Design Pro】使用ant design pro做为你的开发模板(三) 接入mock数据做持续开发
【Ant Design Pro】使用ant design pro做为你的开发模板(三) 接入mock数据做持续开发
534 0
【Ant Design Pro】使用ant design pro做为你的开发模板(三) 接入mock数据做持续开发