最近進入了一個新的項目組,要新起一個項目。這個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用於端到端測試。