SAP Commerce Accelerator和SAP Spartacus的技術對比

i042416發表於2020-11-24

Accelerator是Spartacus釋出之前,SAP Commerce Cloud使用的Storefront實現。Accelerator是一個開箱即用的web實現模板,是Commerce平臺的一部分,以原始碼的方式交付給客戶。客戶通過一個叫做module generator的工具,基於Accelerator 模板程式碼生成自己的Storefront實現。Accelerator這種同Commerce平臺的緊耦合關係,以及基於原始碼級別的二次開發方式,給Commerce專案實施的可升級性帶來很大的挑戰。例如,當客戶發現新版本的Accelerator能滿足自己新的業務需求時,希望升級Accelerator. 然而由於Accelerator是Commerce平臺的一部分,所以必須先升級整個Commerce,再使用module generator基於高版本的Accelerator程式碼生成自定義實現,再把基於低版本Accelerator模板而進行的二次開發,逐一手動遷移到高版本Accelerator生成的自定義實現中去。當Commerce的二次開發達到一定規模量時,這種手動升級的方式很挑戰。


SAP Commerce Accelerator和SAP Spartacus的技術對比


Accelerator具有的這些缺陷,在Spartacus問世之後都迎刃而解。 Accelerator通過原始碼的方式提供了一個Storefront的開發模板,而Spartacus則以庫的方式,提供了一個輕型的Storefront開發框架。我們新建一個Angular應用,匯入對Spartacus庫的依賴,當我們需要升級Spartacus時,只需要更新Angular應用的package.json裡Spartacus庫檔案的版本號即可,因此從Spartacus從可升級性上來說是一個巨大的飛躍。 Spartacus採用API的方式同Commerce互動,這使得Spartacus可以同Commerce分開部署,分別進行升級,比如目前已經發布的Spartacus 3.0,支援從Commerce 1808開始及其之後的所有版本。 Spartacus採用Angular開發,編譯之後生成JavaScript作為其執行時語言,這樣一來,使用Spartacus的二次開發人員,不再需要過去開發Accelerator那樣具備前端JSP和後端Java的全棧開發技術棧。 Accelerator的可擴充套件性,是通過犧牲可升級性為代價換來的。同Accelerator只有原始碼級別的修改這一單一的擴充套件方式相比,Spartacus實現擴充套件性的手段更加多元化 。 (1) Spartacus的模組之一,ConfigModule,將業務邏輯和頁面佈局以及樣式,通過配置的方式暴露出來,二次開發人員通過調整配置,可以更改Spartacus預設的行為和頁面佈局以及樣式。 (2) Spartacus的頁面佈局由不同的Angular Component組成,這些Angular Component同Commerce的CMS Component具有一一對應關係。Spartacus允許二次開發人員增強甚至開發新的Angular Component,去替換Spartacus釋出時使用的預設Component,以次來實現客戶的頁面定製化需求。 (3) 藉助Angular強大的依賴注入機制,Spartacus允許開發人員像Commerce後臺開發人員使用Java Spring框架那樣,開發自己的service實現,通過Angular的Dependency Injection機制,注入自開發的service,從而達到定製化Spartacus的執行流程和邏輯的需求。


SAP Commerce Accelerator和SAP Spartacus的技術對比


更多Jerry的原創文章,盡在:"汪子熙":

SAP Commerce Accelerator和SAP Spartacus的技術對比


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2736601/,如需轉載,請註明出處,否則將追究法律責任。

相關文章