Conversation
|
|
ea04faf to
fa5f918
Compare
|
@jmjatlanta may be i'm tired or missed something, but let's re-check
But new modern refactored implementation seems missed steps in (3), in ctor And also where is |
The intent here was to fill a std::list of In short, DO NOT MERGE THIS or waste time reviewing until I sort out where my train went off the rails. My apologies. Update: My branch |
All is Ok, thx for your hard work. I just thought that if PR is done, it represents some complete state. |
|
Replaced by #476 |
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: