最近進入了一個新的專案組,要新起一個專案。這個Web專案是一個企業內部使用的系統,主要用來記錄、追蹤、管理潛在客戶的資料。該系統有以下特點:
- 需要支援IE10及以上版本;
- 後端採用micro service架構,全部是REST API;
- 需要與現有的CRM系統(客戶管理管理系統)整合,主要採用iframe嵌入頁面的方式;
- 系統開發週期為5個月左右,分為三個大的里程碑。
經過多方考慮,最終選擇AngularJS作為前端主要框架。 理由:
- 該系統為WEB應用程式,符合single page application的特點;
- 由於後端採用REST API,所以前端使用AngularJS可以與其無縫對接;
- 前端頁面互動邏輯不復雜,呈現的資料量不會很大,所以不會遇到AngularJS效能問題;
- 該技術棧與當前公司的技術策略相契合。
當然除了AngularJS框架以外,還需要其它一系列框架來完成整個前端開發、測試、部署的流程。
yeoman: 前端專案腳手架工具;
NPM: 作為本地開發過程中使用到的Node.js的管理;
Bower:作為前端專案使用到的依賴開的管理工具;之所以選擇NPM作為開發包的管理,是因為NPM的整個依賴鏈是巢狀的,這樣每個開發包之間不會相互影響;而Bower在管理包時依賴鏈是平行的,這樣前端載入時無需重複載入被多次引用的依賴,保證了前端資料最小化。
Grunt:作為整個專案的自動化構建管理工具;
Karma:作為單元測試及整合測試執行工具;
Jasmine:單元測試及BDD框架;
Protractor: 驅動瀏覽器的框架,配合Jasmine用於端到端測試。