目前在做的一個web應用程式的前端選型

黃博文發表於2015-02-09

最近進入了一個新的專案組,要新起一個專案。這個Web專案是一個企業內部使用的系統,主要用來記錄、追蹤、管理潛在客戶的資料。該系統有以下特點:

  1. 需要支援IE10及以上版本;
  2. 後端採用micro service架構,全部是REST API;
  3. 需要與現有的CRM系統(客戶管理管理系統)整合,主要採用iframe嵌入頁面的方式;
  4. 系統開發週期為5個月左右,分為三個大的里程碑。

經過多方考慮,最終選擇AngularJS作為前端主要框架。 理由:

  1. 該系統為WEB應用程式,符合single page application的特點;
  2. 由於後端採用REST API,所以前端使用AngularJS可以與其無縫對接;
  3. 前端頁面互動邏輯不復雜,呈現的資料量不會很大,所以不會遇到AngularJS效能問題;
  4. 該技術棧與當前公司的技術策略相契合。

當然除了AngularJS框架以外,還需要其它一系列框架來完成整個前端開發、測試、部署的流程。

  • yeoman: 前端專案腳手架工具;

  • NPM: 作為本地開發過程中使用到的Node.js的管理;

  • Bower:作為前端專案使用到的依賴開的管理工具;之所以選擇NPM作為開發包的管理,是因為NPM的整個依賴鏈是巢狀的,這樣每個開發包之間不會相互影響;而Bower在管理包時依賴鏈是平行的,這樣前端載入時無需重複載入被多次引用的依賴,保證了前端資料最小化。

  • Grunt:作為整個專案的自動化構建管理工具;

  • Karma:作為單元測試及整合測試執行工具;

  • Jasmine:單元測試及BDD框架;

  • Protractor: 驅動瀏覽器的框架,配合Jasmine用於端到端測試。

相關文章