A good reading people often recommend is Game Coding Complete by Mike McShaffry. I've read it myself too and I suggest that it is a great one! It covers a lot of introductory topics on game development and game code architecture as well as some advanced ones. It has some great advice on how you can decouple your game's subsystems.
Another good one is Game Engine Archtecture by Jason Gregory. It covers a lot of ground on game engines but in a more abstract manner than the previous one.