Most of the design articles and books are focused on getting loosely coupled and highly cohesive software..
A general guideline not to design for performance but just write code that is efficient. The performance can later be fixed at hot-spots. I am talking in term of rich-domain applications..
What about scalability and security? When do you start considering theses criterion? I am not talking in general about SQL injection..
For ex: If I have to start serving millions of users from say few hundred... When I have to put my internally used website on internet? etc etc..