SAP Commerce里Extension, Addon和Ac
Accelerator和Extensions不是同一维度的东西,要比较只能把Accelerator同Spartacus做比较。
先说Extensions:Extension是Commerce模块化概念里最小粒度的单元,包含Commerce的业务逻辑,类型定义,配置等等。其实我个人觉得Extension这个命名,很容易误导初学者 - 我最开始学Commerce的时候,以为Commerce extensions和客户扩展相关,后来才知道完全不是这么一回事。
比如Commerce里有个核心的extension名叫core,如下图所示。我最开始学习的时候,是带着ABAP里的extension概念去理解它的,所以让我很费解。实际上这个core是Commerce平台实现的一部分,同客户扩展没有任何关系。
若干个功能上紧密相关的Extensions联合起来,组成更大的逻辑单元,后者可以是Accelerator,OCC API service,等等。
客户可以使用某一个recipe安装Commerce,recipe就是一个清单,里面罗列了需要安装的Extensions列表,比如下图高亮的这4个extensions,合起来共同实现了b2b-accelerator.
从开发角度说,一个Extensions就是一个能够导入到IDE里的项目。
而Accelerator,这个名称也容易让初学者误解。我最开始学习Accelerator时,把其字面意思“加速”理解成性能上的加速,其实完全错了。
Accelerator是Spartacus发布之前,SAP Commerce Cloud使用的Storefront实现。Accelerator是一个开箱即用的web实现模板,这些模板如之前所说,包含若干个extensions,是Commerce平台的一部分,以源代码的方式交付给客户。客户通过一个叫做module generator的工具,基于Accelerator 模板代码生成自己的Storefront实现,然后基于这些生成的代码继续二次开发。这种源代码生成方式确实能加速客户的Storefront二次开发速度,这也是Accelerator命名的由来。