TwistedMind Having quite a hard time following this discussion. Reading the title of the thread, I'm assuming you're more asking for different concepts and debugging strategies rather than help solving specific problems? Then I see some code examples, but I'm not sure what the question is.
But if asking for some strategies, here's what helped me for many years:
- Rubber ducking, a very underestimated technique. Can't tell you how many times this has solved issues for me even before finishing that email, tapping a peer on the back for help, posting the question online, etc.
- This might be controversial for some, but asking AI to help you debug. Not write any code, but just analyze the code, see if it can spot anything you missed, and give explanations to any findings. But be careful with this one, as AI tends to be "confidently wrong". So you need to be good enough to spot when you are given an answer that is incorrect/wrong.
- Including asserts in the codebase has also been proven to increase code quality in my projects. If something is wrong in the code, you would want to know it asap.
- Include testing in the project.
- Keep the code modular and have functions small and readable.
Then, in general, just read up on some good foundations and principles. Best practices in how to keep the code readable and maintainable. Knowing about design patterns, I would say, will be increasingly important as the project grows in complexity.
When you have a new feature working, don't be afraid to refactor it with a cleaner structure to reduce tech debt.
In some instances, drawing out the flow of something can also help visualize it. Also, when testing the flow, use the debugger to confirm the code behaves as you expect.
With this said. I'm not sure if this discussion is meant to cover debugging concepts or has morphed into seeking specific help for a project. If you're looking for specific help, I think it would be better served in a separate thread. It would be easier to follow, help out, and stay on-topic.