Separation of concerns is one of the core principles in programming. When you separate different concerns into different classes and… — Separation of concerns is one of the core principles in programming. When you separate different concerns into different classes and functions, your code becomes more manageable, and you move away from writing a brittle code to writing a robust and testable code.