1) Grouping Files based on Types
AngularJS supports MVC programming paradigm. But the directory structure supported by AngularJS is completely different from other MVC frameworks. Unlike other MVC frameworks, AngularJS does not define models clearly. But programmers often group the files based on their types. When the files are grouped by types, the layout opens many folders simultaneously as the web application scales. The developers can easily prevent the layout from opening multiple folders at a time simply by grouping files based on their features regardless of types. The directory structure allows developers to find files related to a particular feature without any delay.
2) Making Object Dependencies Ambiguous
The dependency injection feature of AngularJS makes it easier for programmers to define the dependencies of individual objects clearly. Also, the feature accelerates the web application testing process. But AngularJS still allows programmers to inject dependencies in a flexible way. Hence, developers often make object dependencies ambiguous by following their own rules. They can define object dependencies clearly bypassing the dependencies as an array of strings. The last element of the array will be a function that will receive all dependencies as parameters.
3) Not Using Event Handlers Properly
AngularJS send the data to be displayed to end users to views through the scope. As the scope is extensible, programmers often create functions to customize the populated content. They also include specific pieces of code in the scope to display the populated content in a more engaging way. The additional code bridge the gap between display and logic. Hence, the programmers must avoid including event handlers in the scope to implement MVC programming paradigm efficiently.
4) Putting Additional Logic in Controllers
Often developers include too must logic in controllers. They even use business logic in controllers and use controllers for DOM manipulation. The programmers must make it a practice to include business logic in services, and use directives for DOM manipulation. When the controllers do not contain too must logic, they can coordinate between the model and the view more efficiently. Also, the programmers can easily test the application by including business logic in services.
5) Including All Objects in the Main Module
Often programmers include all objects or features in the main module regardless of the scale of the web application. If the web application is small and simple, its performance will not be impacted by the number of features included in the main module. But the performance of the large web applications will be affected significantly if all features are included in the main module. While developing large web applications, the programmers must distribute the features across various modules, along with grouping similar features.
6) Not Debugging Applications with Batarang
The AngularJS developers can easily build and debug web application using a robust Chrome extension like Batarang. Batarang simplified AngularJS application development by providing features like model browsing and dependency graph. The developers can use Batarang to determine the services to focus on and identify the functions that take more time. They can further use the Chrome extension to evaluate the performance of the web application elaborately.
7) Performing Tests Manually
AngularJS is designed with the features to make the web application testable from the early phases of the software development lifecycle. But programmers often test the AngularJS application manually. They must use robust test automation tools like Karma or Protractor to create and execute tests more efficiently. Also, the test automation tools will help them to speed up the testing process and produce more precise test results.