Event Refactor Phase 1#427
Conversation
c90dfbf to
6ab3bbd
Compare
|
I basically support all of that. |
|
thanks for feedback and proposals - agree on all 11 points. |
|
good to add yet some policy on git commits (like make each commit for a single purpose, add descriptive messages, do not make commits that can't compile) |
I use that in atomicdex desktop https://www.conventionalcommits.org/en/v1.0.0/ for conventional to follow, they have an external tool to generate changelog based on this commit convention, which is quite cool |
|
Closed in favor of #440 |
I would like to use this PR to open a dialog into integrating heavier use of C++ features into the codebase. Comments are encouraged. But please send any comments about what I should or should not be working on directly to me instead of commenting here.
Status as of 2021-05-10: I believe the code sufficiently demonstrates concepts that could be used in further refactoring. I believe the code to be bug-free, but not complete, as both old and new ideologies coexist for discussion and testing purposes. More test cases are needed for edge cases that I have as yet not learned about.
Points for discussion:
ifstatements for error checking, consider using try/catch. This can reduce the code you need to write, as well as provide a performance boost in some instances if done correctly.komdo_, consider using namespace komodo. This reduces name collisions within the codebase (we know what an "event" is in komdo, and don't have to worry about puting "komodo_" in front of it, or a UI event having a name collision with it). This also often makes using your code as a library less cumbersome.komodo_events.hfile breaks point 9 above. I'd love to get rid of it, as well as big chunks ofkomodo.hfor the same reason. But that would make testing and comparing the existing implementation with the refactor too much to take on in this round. So they will remain until they are no longer needed.#includefiles necessary for the.h. This makes chasing down dependencies less of a problem at the expense of a little compile time. Use#pragma onceto help with this.The above points are simply opinions. I am not here to start wars. If the team decides that any (or all) of these are a bad idea, I'll happily work without using them. Explaining why they are a bad idea helps everyone, but is not required.
Reading suggestions and References: