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

Optimize with OOP #70

Open
Athozus opened this issue Apr 15, 2023 · 3 comments
Open

Optimize with OOP #70

Athozus opened this issue Apr 15, 2023 · 3 comments
Labels
Performance Related to performance improvement (lag issues)
Milestone

Comments

@Athozus
Copy link
Member

Athozus commented Apr 15, 2023

Rewrite the whole code using OOP, to optimize performances (reduce lags, etc).

@Athozus Athozus added Enhancement New feature or request WIP labels Apr 15, 2023
@Athozus Athozus added this to the 1.3.0 milestone Apr 15, 2023
@S-S-X
Copy link
Member

S-S-X commented Apr 15, 2023

I would recommend restructuring only parts where issues have been identified and make some core components modular (one by one, not through single PR that rewrites whole thing).
For many parts functional programming is almost sure still way better option, especially for public API but also for large portion of internal API.

@fluxionary
Copy link
Member

what does OOP have to do w/ performance, even theoretically?

@S-S-X
Copy link
Member

S-S-X commented Apr 16, 2023

what does OOP have to do w/ performance, even theoretically?

Theoretically nothing. Practically it depends on decisions. Either better, worse or same but it has more to do with decisions.
Main thing is that OOP brings way better life cycle management, it enforces well defined interfaces and it makes stuff stay where it belongs.

For machine code there's no difference really, theoretically you can generate exact same result with any programming model. It is more about how developers manage things.
OOP does not fit every situation and same goes with functional or procedural programming. That's exact reason why I did recommend restructuring only parts where issues have been identified and for mail mod message set life cycle management seems to be what is really messed up here.

By really messed up I mean there's been a lot of duplicate code, user interface mixed up with data operations and even data operations somewhat mixed up with storage back end. If you need to update data operations you have to go through code that is primarily meant to handle user interface and you cannot just change data operations logic.

This was referenced Apr 30, 2023
@Athozus Athozus added Performance Related to performance improvement (lag issues) and removed Enhancement New feature or request WIP labels Dec 17, 2023
@Athozus Athozus pinned this issue Dec 17, 2023
@Athozus Athozus added the Release blocker No release until this is closed label Dec 26, 2023
@Athozus Athozus removed the Release blocker No release until this is closed label Mar 24, 2024
@Athozus Athozus modified the milestones: 1.4.0, 1.5.0 Mar 24, 2024
@Athozus Athozus unpinned this issue Apr 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Performance Related to performance improvement (lag issues)
Projects
None yet
Development

No branches or pull requests

3 participants