终于写到Jerry目前正在做的开发工作了。
2015年的时候,那时Jerry曾经做了一年多的SAP UI5开发,想进一步精进本人的开发技能,就申请了一个位于德国Walldorf总部的UI5 Extensibility开发的Fellowship Program,为期6个月。Jerry发了简历给接管Fellowship的团队老板,很快收到回复,团队老板对我的简历很感兴趣,然而示意这个Program没有Relocation Budget,如果我过来,在Walldorf的住宿得我本人掏钱解决。因为这不是商务出差,因而也不会有专门的共事帮我在当地租房。想到这一系列的麻烦,最初我只能放弃。
没想到五年之后,我再次取得了另一个纯前端的开发机会,SAP Spartacus.
什么是Spartacus?Spartacus是SAP Commerce Cloud的Storefront(电商铺面)利用,基于Angular开发而成。
借助SPA(Single-Page-Application)和PWA(Progressive-Web-Application)个性的反对,Spartacus可能提供近似原生利用的用户体验,同时具备高度的可配置性和可扩展性。
先看看Spartacus长什么样。对于国内习惯了网购的敌人来说,无需任何培训就能毫无艰难地应用Spartacus进行购物下单,这些操作流程咱们曾经相熟得不能再相熟了。
浏览商品,增加到购物车,领取。
可能大家会感觉下面截图的界面比拟奢侈,不够好看?后面曾经提到,Spartacus具备高度的可配置型和可扩展性,SAP客户能够基于Spartacus开发出具备本人举世无双格调的Storefront利用。
一个胜利案例就是,乐高的在线销售Storefront.
Spartacus最显著的两个特点:
- 开源(https://github.com/SAP/sparta...
- 以库文件的模式公布
也就是说,客户只须要新建一个Angular利用,在package.json里增加对SAP Spartacus库文件的依赖,就能够应用上图所示的Spartacus Core和UI Component,开发满足本人理论需要的Storefront了。
下图就是Angular利用中的package.json文件中导入Spartacus的四个依赖库文件的形式:
客户采纳这种形式开发而成的Storefront利用,其自开发代码(下图淡黄色矩形框所示)是降级平安的,即自开发代码不会因为Spartacus库文件的版本升级而被笼罩掉。
Spartacus是一个仍在继续开发的我的项目,目前最新的版本是3.0. 通常状况下,每隔6个月会进行Major版本的更新,比方从2.0到3.0. 每隔6周,会进行Minor版本的更新,比方从2.0到2.1.
对SAP Commerce Cloud有所理解的敌人们都晓得,Hybris以前还有一个基于JSP的Accelerator,也能提供浏览店铺商品,退出购物车,结帐领取的性能,那么为什么SAP依然会启动Spartacus的开发,并在2019年7月正式公布了1.0版本呢?
我的共事张健(Zhang Jonathan)在他的文章 从产品展现页面谈谈Hybris的特有概念和设计构造 里给大家介绍过,Commerce Cloud的前身Hybris是一个monolithic(单体)利用,其中Storefront即Accelerator实现的技术栈是JSP + Java,没有前后端拆散的概念。
Accelerator尽管如张健文章里介绍的那样,具备高度可扩展性,然而也存在一些问题:
因为monolithic(单体)利用的个性,Accelerator自身也是Commerce平台的一部分,通过Java调用经Facade Layer作为入口,生产Service Layer的服务:
如下图高亮代码所示:
因而,Accelerator和Commerce平台无奈别离进行降级。
另外,SAP官网明确指出,因为SAP以源代码的形式公布Accelerator,作为施行的模板,因而一旦客户开始了Storefront的定制化工作,批改了这些模板的源代码后,就无奈再导入针对当前工作版本的Accelerator的bug fix. 这个情理同ABAP Netweaver外面,如果开发人员间接批改了规范代码后,打不了SAP note是一样的。
这也就是SAP官网上称Accelerator为"Extendable but not Upgradable"的起因。
Commerce Accelerator的这些有余,通过2019年诞生的Spartacus Storefront失去了补救:
100% API-Driven
Spartacus和Commerce后盾的所有交互均通过API实现,Commerce API endpoint通过环境变量SPARTACUS_BASE_URL注入Spartacus,如下图所示:
Focused Development
应用Spartacus,SAP Commerce Storefront开发人员只须要专一于Angular开发。前后端拆散之后,Storefront的开发,不再须要Accelerator时代的全栈开发模式。
Continious Delivery
以周为单位的patch公布频率,使得继续交付成为可能。同时,客户通过导入Spartacus库文件的形式进行Storefront的二次开发,其定制化代码和Spartacus库文件是独立的实体,能够别离进行降级;Spartacus和SAP Commerce能够别离进行部署,亦可进行各自的降级。
更多对于SAP Spartacus的介绍,请参考openSAP上的公开课.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
更多浏览
- 从产品展现页面谈谈Hybris的特有概念和设计构造
- 从产品展现页面谈谈Hybris系列之二: DTO, Converter和Populator
- 从产品展现页面谈谈Hybris系列之三:Hybris Service层介绍