Exercise Proper Style Guidelines
Instead, wherever possible, it is highly recommended that you try to follow the popular best practice style guidelines laid out in this documentation. More specifically, if you’re using the latest version of AngularJS (Angular 2), these guidelines are now actually part of the official AngularJS documentation.
Automate Your Testing
Just as Grunt can be used to help you automate a number of menial tasks during AngularJS development, with the growing popularity of heavy focus on test-driven development (TDD), there’s never been a better time to get in the habit of using a test runner tool to automate and speed up all your testing requirements.
Best of all, the AngularJS team has taken it upon themselves to develop and support an extremely powerful test runningtool known as Karma (previously named Testacular).
At the outside, it should be understood that Karma is not a test framework, meaning you will not directly write code in a specific format or syntax to then instruct Karma to perform a few tests. Instead, as a test runner, similar to the way Grunt is a task runner, Karma is used to automatically execute your entire test suite on real browsers and devices. The power of this simple differentiation from most testing that is not performed on actual browsers/devices cannot be overstated.
The Karma homepage includes a nice little introductory video on how Karma works, but the simple explanation is that once you’ve written a few tests in your favorite test framework (Jasmine is a popular and powerful choice), anytime you make a change to your codebase and save the file, Karma will recognize that change, immediately execute all your tests, and display the results in your terminal. This saves loads of time and headache during development, ensuring that you never have to remember to run tests after changes are made.
Utilize Helper Modules
One final addition to our list of AngularJS best practices is to make heavy use of the work of others that have come before you, in the form of the numerous and often exceptionally powerful helper modules available to AngularJS.
Just as with libraries or plugins for other programming frameworks, modules in AngularJS are packaged code components that provide additional functionality out of the box. Modules can greatly speed up your own development and improve productivity by allowing you to focus on the core business logic of your code that is unique to the project at hand.
There are a number of sources where you can find helpful modules, but a few examples are ngmodules.org and AngularUI.AngularUI will be of particular interest to anyone with experience in (and fondness for) the jQuery framework and it’s plethora of popular UI components.
Beyond that, the UI-Router module is a popular way to easily implement client-side routing, whereby the browser’s displayed URL automatically updates based on the server-side routing (e.g. app/#/users, app/#/login, etc).
The Restangular module is another proven service that allows for simple implementation of a standard RESTful API through standard GET, POST, UPDATE, and DELETE requests.
For more help on your AngularJS app, check out Airbrake’s AngularJS Error Handling tool.