Skip to content
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

Open
edan-bainglass opened this issue Sep 6, 2023 · 0 comments
Open

App overhaul #55

edan-bainglass opened this issue Sep 6, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@edan-bainglass
Copy link
Collaborator

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant