EmpaEconversion / aiidalab-aurora

AiiDAlab app for the Aurora BIG-MAP Stakeholder initiative
https://aiidalab-aurora.readthedocs.io/en/latest/
Other
2 stars 5 forks source link

App overhaul #55

Open edan-bainglass opened 1 year ago

edan-bainglass commented 1 year ago

As the title suggests, the entire app is to be overhauled. It is highly coupled in its current state. I propose an atomized-MVC approach, i.e. each unit of the app is packaged as an MVC model, with the view holding the widgets, the controller observing/reacting to view changes (user actions) and in turn calling methods of the model, which houses the current state of the view. The model has the necessary logic to update its state. The various units of the app are lightly connected via a network of models, with all models connected to one or more common models, e.g. samples model, protocols model, etc. All models are observable, allowing them to stay in sync via traitlets features. In addition, the views are automatically updated by observing their respective models.

Early testing of this approach suggests a significant improvement in performance. In addition, the high-cohesion, low-coupling of this approach improves maintainability and extensibility.