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

Refactor Plugin Architecture: Centralize Routing and Implement View Manager #314

Open
taldekar opened this issue Dec 18, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@taldekar
Copy link
Contributor

Is your feature request related to a problem? Please describe.
The plugin employs a decentralized approach for authentication and routing, with each view managing its own authentication listener, UI presentation, and routing logic. This violates the separation of concerns principle, reducing modularity and maintainability. As the plugin expands, routing complexity increases, and new views often require changes to existing ones, creating a tightly coupled system. Additionally, views are independently registered as extension points, which leads to several drawbacks: increased overhead in managing multiple extension points, potential inconsistencies in UI and behavior across views, difficulty in implementing global state or shared functionality, and challenges in coordinating interactions between views. This approach complicates the overall architecture and makes it harder to maintain a cohesive user experience as the plugin grows.

Describe the solution you'd like
To address these issues, an alternative approach is proposed:

  • Implement a dedicated router to manage navigation between views.
  • Create a view manager to lazily load different views as needed.
  • The router would instruct the view manager which views to display based on status updates from various components.

This solution would centralize routing logic, improve modularity, and simplify the overall architecture, making the plugin more maintainable and scalable.

@taldekar taldekar added the enhancement New feature or request label Dec 18, 2024
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

2 participants