A crap  architecture with a load of tests will still be a crap architecture. I wish guides like this would actually talk more about how you design such systems and why.<p>This ends up just being a list of best practices rather than actually telling anything about building systems.