11

Separation of Concerns

Separation of concerns is defined as “a design principle for separating a computer program into distinct sections such that each section addresses a separate concern.”1

Separation of concerns is the most powerful principle of design in my own work. I apply it everywhere.

The simple colloquial description of separation of concerns is “One class, one thing. One method, one thing.” It’s a nice soundbite, but that doesn’t give the functional programmers a free pass to ignore it.

This is about clarity and focus in our code and systems. It is one of the key enabling techniques to help us improve the modularity, cohesion, and abstraction in the systems that we create and, as a result, help us reduce the coupling to an effective ...

Get Modern Software Engineering: Doing What Works to Build Better Software Faster now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.