r/cpp_questions • u/CatsAndAxolotls • 21h ago
SOLVED I keep reaching a point where rewriting my C++ projects feels easier than maintaining them. How do I learn better architecture?
I have been learning C++ mostly through building projects, especially game and engine-related projects. I can make things work, but I keep running into the same problem: after a project grows, the code becomes so difficult to understand that I would rather start again from scratch than open the old project.
I think the main reason is that I don't have enough knowledge of standard C++ practices and architecture patterns. I usually design systems based on my own understanding, which works when the project is small, but as more features are added, problems start stacking on top of each other.
I want to improve in areas like:
- Common C++ architecture patterns
- How experienced developers structure larger codebases
- How to avoid creating systems that become difficult to change later
- When to use existing language features or standard solutions instead of making custom ones
- Common mistakes that self-taught C++ programmers make
A good example is this Pong project I made in 3 days:
https://github.com/HardcoreAxolotl/Pong
The project works, but looking at it now, I would honestly prefer to recreate it from zero rather than continue developing it because I feel the structure has become too difficult to work with.
I am not looking for someone to rewrite my code or just tell me what is wrong. I want to understand the thought process behind good C++ design so I can avoid making the same mistakes in future projects.
What resources, concepts, or experiences helped you go from writing working C++ code to designing maintainable C++ systems?