SAP Commerce Accelerator和SAP Spartacus的技术对比
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的二次開發達到一定規模量時,這種手動升級的方式很挑戰。
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的運行流程和邏輯的需求。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Commerce Accelerator和SAP Spartacus的技术对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CF新角色空怎么获得 CF新角色空获得方
- 下一篇: Android 浮窗开发之窗口层级