A-Z Popular Blog Coding Search »
Coding
 Advertisements
Related Guides

What is Separation Of Concerns?

 , updated on
Separation of concerns, or SoC, is a principle of software design that code be separated into layers and components that each have distinct functionality with as little overlap as possible. It is a fundamental principle that is widely observed.

Value

Separation of concerns reduces complex problems into a series of manageable layers and components. It tends to reduce risks as changes are often isolated to a single component as opposed to intermingled throughout a large and complex code base.

Encapsulation

Separation of concerns is implemented by encapsulating functionality in components that offer a well-defined interface. Components hide complexity such as user interfaces, business logic, data access and transaction execution from the rest of the code. When something changes, the interface often isn't impacted meaning that the change is isolated to a component.
Overview: Separation Of Concerns
Type
Definition
The principle that code be structured into layers and components that each have distinct functionality with as little overlap as possible.
Value
Reduces complexity
Makes change more manageable
Also Known As
SoC
Related Concepts

Coding

This is the complete list of articles we have written about coding.
Abstraction
Algorithms
API
Bootstrapping
Caching
Code Refactoring
Code Smell
Complexity Hiding
Components
Deep Magic
Edge Case
Event Processing
Forward Compatibility
Hardcoded
IT Artifact
IT Examples
Layers
Microservices
Negative Code
Precomputation
Proof Of Work
Pseudorandom
Reusability
Scalability
Software Design
More ...
If you enjoyed this page, please consider bookmarking Simplicable.
 

Coding

A list of coding considerations and techniques.

Emergence vs Big Design Up Front

The difference between emergence and big-design-up-front.

Deep Magic

An overview of deep magic, a technology term.

Principle Of Least Astonishment

An overview of the Principle Of Least Astonishment.

Pull vs Push

The difference between pull and push technology.

Binary vs Hexadecimal

A comparison of binary and hexadecimal.

End-User Computing

An overview of end-user computing.

Library vs API

The difference between a library and API explained.

Code Reuse

The common types of code reuse.

Code Freeze

The common types of code freeze.

Algorithms

A few types of algorithms.

Algorithms vs Code

The difference between algorithms and code.

Edit Distance

An overview of edit distance.

Random Seed

The definition of random seed with examples.

Soft Computing

The definition of soft computing with examples.

Algorithmic Accountability

The definition of algorithmic accountability with examples.

Input Is Error

An overview of input is error.

IT Bias

An overview of IT biases with examples.
The most popular articles on Simplicable in the past day.

New Articles

Recent posts or updates on Simplicable.
Site Map