-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
App overhaul #55
Labels
enhancement
New feature or request
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The text was updated successfully, but these errors were encountered: