Level Up Coding

Coding tutorials and news. The developer homepage gitconnected.com && skilled.dev && levelup.dev

Follow publication

Member-only story

SOFTWARE ARCHITECTURE & REFACTORING

Layers in Software Architecture that Every Sofware Architect should Know

Architectures have the same objective — the separation of concerns. They all achieve it by dividing the software into layers. — Uncle Bob

Daniel Rusnok
Level Up Coding
Published in
4 min readNov 3, 2020

Layers and direction of data flow through them

Layers

Layers are horizontal (don’t get confused with title image) abstract parts of an application. Their boundaries are making a right angle with the data flow. Layers are representing the different levels and types of abstraction of the concerns which accompany software development.

Why Divide the Application into Layers

  • Maintains the Single Responsibility Principle.
  • Follows Separation of Concerns.
  • Isolates development roles & skills. (Presentation Layer — FE dev, Business Layer — BE dev)
  • Supports multiple implementations. (Interchangeable Presentation Layer)
  • Varying rates of change.
  • Slices application to more manageable units.

Layered Architecture Pattern

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Written by Daniel Rusnok

Senior Software Developer. Loving to gain & share knowledge. Focused on Microsoft technologies like Azure, .NET Core & C#. Software Architecture enthusiasist.

Responses (6)

Write a response

Business Layer is a filled code responsible for the existential meaning of software.

Domain layer, it screams at me ;-)

--

In my experience, a layered architecture lead to violation of most architectural patterns.
This could just be my experience, but I’ve seen mammoth <something>Service classes and mammoth data access <something>repository classes in this style.
What…

--

A very nice read. I've published a supportive material that deep-dive into Layered (and segmented) architecture pattern https://git.io/JJrgI

--