SAP Spartacus使用到的技术栈

前面说到,Spartacus是基于现代Web开发技术打造而成的一个Storefront开发框架,因此涉及到的技术栈都是目前前端开发普遍使用的一些比较成熟的技术。

  • 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上去。

你可能感兴趣的:(SAP Spartacus使用到的技术栈)