Single Page Application Best Practices and Recommendations
1. The page should be more focused and clear and unused libraries should not be part of application.
2. Content should be modified into small chunks (namely as Module)
3. Package Management: Package management identifies all the dependencies in app with specific names and versions. It gives you greater control over dependencies and ensures that everyone on your team is using an identical version of library. As we are in Angular Node Module Packages (NPM) will recommended.
4. Unit and Integration Testing: Unit testing is critical part of app development. Since we are using Angular any one of the client-side unit testing frameworks such as Jasmine, Mocha or karma.
5. UI Considerations: For Single Page Applications we have to consider following design points,
- Form Handling: Use different input controls (numeric input, email, date picker, color picker, autocomplete), validations on form submit, highlight errors in form inputs and propagating server-side errors on client.
- Formatting: Apply custom formats to numbers and other values.
- Error Handling: Propagate different kinds of client and server errors. Craft text for different nuances in errors, maintain an error dictionary and fill placeholders with runtime values.
- Alerts and Notifications: Tell the user about important events and activities and show system messages coming from the server.
- Layered Graphics: Understand the intricacies of CSS, the box models, floats, positioning, etc. Having a good working knowledge of CSS will help you achieve innovative designs in HTML. Instead of CSS we can also go with SAAS for rendering speed and to improve performance.
6. Version Control: Developer should manage with proper branching system through entire development. Namely branches should be as development, Testing and Staging to avoid chaos. Preferably we are using GitHub here as repository.
7. Minification and Bundling: Before deploying application into production all scripts should be minified into single file. Minification process reduce loading time and increase its performance.
8. Auditing and Google Analytics: To get metrics and usage flow of application it should implement Google analytics.
9. Operations Management
- Continuous integration, using build servers such as Jenkins.
- Caching data in-memory and invalidating the cache at regular intervals.
- Handling roles and permissions and validating user requests.
- Security, SSL certificates, and exploit-testing.
- Deployment and staging. (Deployment and Staging will be done in Docker)
10. Browser and Mobile Compatibility: We have to verify whether our designs and layouts will support variety of browsers and mobile layouts (for both mobile and tablets).
To get further insights, talk to our experts at +1 (415) 233-4737 or reach us at email@example.com for a free consulting.