I think the best way is unfortunately just experience. Design patterns are just that, patterns, and you learn and sort of internalize them when you work on real projects.
You can also look at open-source projects with good architectures like LLVM, lichess, etc. (there are other threads with a list of these).
The most important thing to understand IMO is that there’s no one-size-fits-all architecture, and a great architecture vs a “better” architecture isn’t that different and not worth wasting too much time. A small project will burnout using Google’s practices and a Google-sized project will fall apart using small-company practices. If you plan on making your own app, definitely sketch out an idea of the architecture before you start building it, but don’t spend too much time or worry too much because it’s more important that you actually start.