天天看點

SAP Spartacus使用到的技術棧

SAP Spartacus使用到的技術棧

Angular:由Google維護的一款web前端開發架構,采用了大量有十幾二十年曆史的成熟技術,比如依賴注入、接口、注解等等,同時也是一款與時俱進的架構,比如對TypeScript的支援,跟RxJS的深度整合,對PWA第一時間的支援等等。Spartacus1.0基于Angular 9.

TypeScript: Angular的開發語言是TypeScript,ES5, ES6是JavaScript發展過程中出現的兩個版本,而TypeScript不僅是ES6的超集,而且是一門靜态類型語言。rollbar 是一個異常監控平台,2018 年釋出了一份前端項目中Top10的錯誤類型報告,其中前7位都和類型錯誤有關。而TypeScript的編譯器類型檢查就能避免不少的類型錯誤。TypeScript通過強類型接口,在服務實作者和服務調用者之間建立了一種契約,這在像Spartacus這種開發者來自世界各地不同公司群組織的開源項目中非常重要。

Rxjs: Reactive Extension JavaScript,是一種響應式程式設計實踐,Angular是RxJS這個庫的重度使用者。Rxjs的核心是Observable(可觀察對象),封裝了Spartacus從Commerce讀取業務資料的異步操作。通過Rxjs提供的施加在可觀察對象上的各種操作符,Spartacus可以靈活地控制異步讀取Commerce業務資料的時序。

Ngrx: Angular裡一種優雅的管理應用狀态的庫。Angular和其他主流的前端架構一樣遵循元件化開發的标準,元件之間通信基本都是單向資料流:父元件通過屬性綁定把資料傳遞給子元件,子元件如果想要修改傳入的資料,必須通過事件回調同父元件通信。NgRx作為第三方,能夠統一管理元件的狀态,降低了Spartacus這類複雜前端應用元件間狀态管理的複雜度和出錯的可能。

SASS:CSS的擴充語言,在CSS基礎上增添了定義變量,支援代碼塊嵌套,繼承,命名空間,父級引用等,大大提高了css的開發效率。可以說Spartacus能支援從頁面整體顔色風格到控件外觀細粒度的微調,sass功不可沒。

Jasmine:前端單元測試架構。

Cypress:端到端自動化測試架構。

我們通過完善的單元測試和端到端自動化測試,保障了Spartacus這種開源項目的代碼品質。

最後,我們開發出的Spartacus,經過打包後,以庫的形式釋出到npmjs.com上去。

繼續閱讀