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/spartacus)
- 以庫文件的形式發布
也就是說,客戶只需要新建一個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简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝可梦剑盾丑丑鱼怎么进化成美纳斯 丑丑鱼
- 下一篇: 深入学习SAP UI5框架代码系列之一: