转:

SAP Spartacus简介

终于写到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层介绍

转:

SAP Spartacus简介

最新文章

  1. 《Spark快速大数据分析》—— 第三章 RDD编程
  2. Javascript Promise入门
  3. sgu 185 最短路建网络流
  4. DelphiXE Android的所有权限按照分类总结说明
  5. 团体程序设计天梯赛-练习集L1-009. *N个数求和
  6. WP8教程
  7. cobbler部署
  8. vertical-align的深入学习
  9. 【转】Win7与Ubuntu 14.04双系统修改启动项顺序
  10. Berkeley DB 使用
  11. Codeforces 328B-Sheldon and Ice Pieces(馋)
  12. Self referencing loop detected with type
  13. 下拉刷新和上拉加载 Swift
  14. jquery的几个国内CDN加速节点
  15. 利用HTML5判断用户是否正在浏览页面技巧
  16. 刚实习的自己-php
  17. Centos 配置eth0 提示Device does not seem to be present
  18. 1、jeecg 笔记开篇
  19. 洛谷 P2574 XOR的艺术(线段树 区间异或 区间求和)
  20. xml中该使用属性还是元素

热门文章

  1. 安装python的selenium库和驱动
  2. HDU 1564 Play a game && HDU 2147 kiki's game
  3. Codeforces Global Round 11 C. The Hard Work of Paparazzi (DP)
  4. 郁闷的出纳员 HYSBZ - 1503
  5. Windows环境下Robot Framework 下载及安装流程
  6. Ubuntu Live CD联网修复
  7. Leetcode(9)-回文数
  8. 计蒜客 2019南昌邀请网络赛J Distance on the tree(主席树)题解
  9. μC/OS-III---I笔记11---就绪任务列表管理
  10. 前端监控平台 & 架构