If you take a look at the structure of a software application like Mindspace, you’ll find the following layers.
- The stuff what you see – presentation layer.
- The code that processes and renders – application layer.
- The logic for how data are stored and accessed – business logic layer.
- The layer that handles the data – data access layer.
If all these layers were to be combined into a standalone unit, it’s the Monolithic architectural pattern. This is a very common approach you find in simpler applications or the ones built by new developers. Also known as a single-tier application, such software are non-modular and serve a very simple and narrow use-case. Mostly internal applications and software that are meant to be used by a small number of users.
As all the components are crammed into a single self-contained unit, the more complex a monolithic application grows, the harder it will be to maintain or sustain it. For example, if a new person joins the project, they’ll have to go through the entire application to work on just the component they are supposed to.
So, to solve the downsides of this pattern, the principle of Separation of concerns was adapted. Proceed to the next lesson to learn about it.