* 使用:
* `$timeout`?替代?`setTimeout`
* `$interval`?instead of?`setInterval`
* `$window`?替代?`window`
* `$document`?替代?`document`
* `$http`?替代?`$.ajax`
這將使你更易于在測試時處理代碼異常 (例如:你在?`setTimeout`?中忘記?`$scope.$apply`)
使用如下工具自動化你的工作流 *?[Yeoman](http://yeoman.io/)?*?[Gulp](http://gulpjs.com/)?*?[Grunt](http://gruntjs.com/)?*?[Bower](http://bower.io/)
* 使用 promise (`$q`) 而非回調。這將使你的代碼更加優雅、直觀,并且免于回調地獄。
* 盡可能使用?`$resource`?而非?`$http`。更高的抽象可以避免冗余。
* 使用AngularJS的預壓縮版 (像?[ngmin](https://github.com/btford/ngmin)?或?[ng-annotate](https://github.com/olov/ng-annotate)) 避免在壓縮之后出現問題。
* 不要使用全局。通過依賴注入解決所有依賴。
* 不要污染?`$scope`。僅添加與視圖相關的函數和變量。
* 使用 controllers 而非?`ngInit`。只有當?`ngInit`?是?`ngRepeat`的特殊別名. 除此之外, 你應該使用 controllers 而不是`ngInit`?來初始化scope變量.
* 不要使用?`$`?前綴來命名變量, 屬性和方法. 這種前綴是預留給 AngularJS 來使用的.
* 當使用 DI 機制來解決依賴關系, 要根據他們的類型進行排序 - AngularJS 內建的依賴要優先, 之后才是你自定義的。