unity – Game architecture and class responsibilities

I’m a web developer, new to C# and trying to learn Unity. I’ve learned the C# syntax, I understand how to write working code, although I’m having a hard time understanding when and to what classes should I split my code. If I understand correctly, I try to imagine my app being like a house and the classes being like the bricks, doors, windows etc. But even then I just can’t quite get it. I’m somewhat a perfectionist and like to do everything nice, clean and corresponding to the best practices, but I don’t understand the best practices, when to create a GameManager class, when do I create a PlayerController, when do I create a PlayerManager, how will it communicate with my Movement class, what and where should I keep track of, where do I put the states and how will then the states work. Should the door know when it’s being opened or should the door just open on command? Are there any good resources about architecting the systems or maybe you have any suggestions where could I find bigger projects for free to download as examples to see how it’s done? Haven’t found anything good about the subject on a more bigger picture level and the resources I found are very small and specific. Just need a place to start understanding the subject.