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