# Separation of concerns principle

{% hint style="success" %}
**Separation of concerns (SoC)** is a design principle for separating a computer program into distinct sections, so that each section addresses a separate concern.
{% endhint %}

A **concern** is a set of information that affects the code of a computer program.

A program that embodies SoC well is called a modular program. Modularity, and hence separation of concerns, is achieved by encapsulating information inside a section of code that has a well-defined interface.
