首页 > 其他分享 >Spartacus 4.0 升级到 5.0 后 checkout library 的设计变化

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

时间:2023-04-06 20:55:42浏览次数:31  
标签:5.0 NgRx Spartacus library 模块 checkout 软件系统

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

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

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

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

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

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

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

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

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

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

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

标签:5.0,NgRx,Spartacus,library,模块,checkout,软件系统
From: https://www.cnblogs.com/sap-jerry/p/17294130.html

相关文章

  • 什么是 Angular library 的 secondary entry points?
    在Angular应用程序和库中,secondaryentrypoints(次要入口点)是指与主入口点不同的导出和发布方式。主入口点是指在package.json文件中声明的默认的入口点,它通常包含了该库的主要功能和API。而secondaryentrypoints则是在Angularlibrary项目中定义的额外的入口点,它们可......
  • Spartacus 项目中的 facade 和 core 文件夹
    Spartacus是SAPCommerceCloud的storefront框架,feature-libs文件夹下的facade文件夹和core文件夹是Spartacus中用于实现特定功能的库文件夹。它们各自的作用如下:facade文件夹:存放与storefront框架中的各种功能和业务逻辑相关的代码。这些代码通过facade模式......
  • WinCE5.0下实现透明背景按钮(.net C#) 个人实验
    参考了WinCE5.0下实现透明背景按钮(.netC#)这篇文章后,本着不模仿的态度去做,结果发现还是原先作者的思路比较好,自己的做法虽然比较简单当时图片得做很多张,效果其实也差不多,而且可维护性并不强,先把我自己做的贴出来。希望自己多敲敲,能找出更简单的方案来目录试图:效果: 直接贴代码:us......
  • ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
    一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。       公共类库公共类库通常是指ThinkPHP/Library目录下面的类库,例如:         Think目录:系统核心类库         Org目录:第......
  • linux上安装.net 5.0
    一、CentOS8.2在线安装.net5.0直接执行命令:sudodnfinstalldotnet-sdk-5.0二、centos7.6在线安装.net5.0首先,配置仓库:sudorpm-Uvhhttps://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm然后,执行安装命令:sudoyuminstalldotn......
  • 安装MYSQL_5.0/8.0教程(附数据库和客户端工具下载链接)
    1.Mysql5.7下载网盘下载(推荐):链接:https://pan.quark.cn/s/d98d2536f847提取码:kbyN 官网下载:mysql下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html跳转到上述页面,选择Archives(历史存档)选择版本-下载2.Mysql安装双击打开下载好的文件。以前安......
  • 关于 fontawesome 库在 Spartacus 项目中的应用
    FontAwesome是一个广受欢迎的开源图标库,它提供了一系列的图标和符号,可以在Web开发中方便地使用。它包含了大量的图标,如社交媒体图标、箭头、菜单图标、表单控件图标、设备图标、通知图标等等。FontAwesome的图标是以矢量方式呈现的,这意味着可以根据需要缩放和变换大小而不会......
  • NETDMIS5.0角度计算2023
    按有效的元素组合形式计算两矢量元素(或其法线)之间的夹角。路径:【公差】→【角度】元素1与元素2:选择两元素计算角度。可用拖拽或鼠标中键添加元素。投影面:选择计算角度是平面角度还是空间角度。选择SPACE,角度计算与两元素先后顺序无关,矢量角结果都是正的;选择三个坐标......
  • macos:用homebrew安装node/安装vue-cli( node v18.15.0/ Homebrew 4.0.10-119)
    一,用brew安装nodeliuhongdi@liuhongdideMacBook-ProHomebrew%brewinstallnode@18==>Downloadinghttps://formulae.brew.sh/api/formula.jws.json#=#=#==>Fetchingnode......
  • CSharp: Tesseract OCR V5.0 in donet core 3.1
    Referenceresourceshttps://github.com/alex-doe/open-ocr-dotnethttps://github.com/tleyden/open-ocr/gohttps://github.com/DayBreak-u/chineseocr_litehttps://github.com/pjreddie/darknethttps://sourceforge.net/projects/vietocr/https://github.com/PaddlePaddle/......