Principles of Good Software Design

Modularity, cohesion, low coupling, abstraction/information hiding, and good separation of concerns collectively form the bedrock good software design.
Modularity, cohesion, low coupling, abstraction/information hiding, and good separation of concerns collectively form the bedrock good software design.