Why, of course, in spirit of how I end up doing every single project I have started, I will restart from the ground up!
The simple problem is that the tree between modules and containers and all the various method calls is really hard to trace, so figuring out why a graphical call isn't working right is a process of tracking back every graphical call and trying to determine in exactly what order everything needs to happen.
Then with various calls in all sorts of methods and constructors, it also involves figuring out which method does what to what and where and how.
So yeah. I will be rebuilding this from the ground up based on the following principles:
Consistency - everything needs to be consistent.
Traceable - the code path should be simple and make sense.
Simple - the number of method calls should be at a minimum.
Documented - all the code should be well documented so it is easy to trace.
I will, of course, be opening a new branch in order to rewrite this.
Hopefully I won't have to restart again, but knowing myself, I will end up doing so.
I think my problem is that when I first did this project, I wrote it with the firm idea in mind that no, I would not restart. Then, when I screwed up everything by not fixing problems well, it became unmaintainable and now I have to restart anyways.
I think what I need to do is make sure to take time when expanding the module system or reworking the graphical call trace path. That way, my code won't end up working but being impossible to maintain.
Nothing much more needs to be said.
What am I going to do about it?
Why, of course, in spirit of how I end up doing every single project I have started, I will restart from the ground up!
The simple problem is that the tree between modules and containers and all the various method calls is really hard to trace, so figuring out why a graphical call isn't working right is a process of tracking back every graphical call and trying to determine in exactly what order everything needs to happen.
Then with various calls in all sorts of methods and constructors, it also involves figuring out which method does what to what and where and how.
So yeah. I will be rebuilding this from the ground up based on the following principles:
I will, of course, be opening a new branch in order to rewrite this.
Hopefully I won't have to restart again, but knowing myself, I will end up doing so.
I think my problem is that when I first did this project, I wrote it with the firm idea in mind that no, I would not restart. Then, when I screwed up everything by not fixing problems well, it became unmaintainable and now I have to restart anyways.
I think what I need to do is make sure to take time when expanding the module system or reworking the graphical call trace path. That way, my code won't end up working but being impossible to maintain.