|
|
### Overview of the client architecture and technical decisions
|
|
|
|
|
|
- The application client part is a typical **Single Page Application**: the client application is loaded at the beginning and the data gets changed and updated dynamically at run time. The server has no UI logic. The server maintains no UI state.
|
|
|
- The application client part is a typical **Single Page Application**: the client application is loaded at the beginning and the data get changed and updated dynamically at run time from the server. The server has no UI logic nor maintains UI state.
|
|
|
|
|
|
- The application is **strongly graphics oriented** so it makes use of the *Three.js* library. On the other hand it's not using a typical UI global app framework. Instead good patterns and practices are adapted to the project needs.
|
|
|
|
|
|
- Use of **application modules** to organize and get uncoupled and maintainable code. Try to create small subsystems that are not interdependent. Use of **global event system**. Implement a system for inter-module communications based in events to reduce the coupling (pub/sub pattern).
|
|
|
|
|
|
- Distinguish **definition code from initialization code**. Reusable components should be defined without actually being instantiated/activated.
|
|
|
|
|
|
- **'state-component-based' architecture**
|
|
|
|
|
|
Stage management in the application (no state/data stored in the DOM).
|
|
|
|
|
|
Components
|
|
|
Views observe model changes (event system), reflect the content of the models. Views implementation based in uncoupled UI components using a programmatic approach (internal templating).
|
|
|
|
|
|
----
|
|
|
|
|
|
- Keep it simple philosophy: the use of libraries (usually more complex and functional than needed) and dependencies must be well justified
|
|
|
|
|
|
- The application is **strongly graphics oriented** so it makes use of the Three.js library but is not using a typical UI global app framework. So it reuse and adapt the patterns and best practices that fit the special project features. |
|
|
\ No newline at end of file |