DIP: Dependency Inversion Principle

Photo by Tim Mossholder on Unsplash

(skip the first paragraph if you have already read other parts of this blog series)

This article is the last part of the blog series, dedicated to well-known software design principles, that evolved over time and were finally summarised by Robert C. Martin with initials of the corresponding principles. These principles guide us how to build well-designed software systems, giving best practices for arranging classes, functions, building blocks. We will look at each principle in depth and apply it to the Spring Boot Application. The idea is refactoring existing software based on these principles from architectural point of view.

The…


ISP: Interface Segregation Principle

Photo by Agustín Lautaro on Unsplash

(skip the first paragraph if you have already read other parts of this blog series)

This article is the fourth part of the blog series, dedicated to well-known software design principles, that evolved over time and were finally summarised by Robert C. Martin with initials of the corresponding principles. These principles guide us how to build well-designed software systems, giving best practices for arranging classes, functions, building blocks. We will look at each principle in depth and apply it to the Spring Boot Application. The idea is refactoring existing software based on these principles from architectural point of view.

The…


LSP: Liskov Substitution Principle

Photo by Sam Moqadam on Unsplash

(skip the first paragraph if you have already read other parts of this blog series)

This article is the third part of the blog series, dedicated to well-known software design principles, that evolved over time and were finally summarised by Robert C. Martin with initials of the corresponding principles. These principles guide us how to build well-designed software systems, giving best practices for arranging classes, functions, building blocks. We will look at each principle in depth and apply it to the Spring Boot Application. The idea is refactoring existing software based on these principles from architectural point of view.

The…


OCP: Open-Closed Principle

Photo by Adrien Olichon on Unsplash

(skip the first paragraph if you have already read other parts of this blog series)

This article is the second part of the blog series, dedicated to well-known software design principles, that evolved over time and were finally summarised by Robert C. Martin with initials of the corresponding principles. These principles guide us how to build well-designed software systems, giving best practices for arranging classes, functions, building blocks. We will look at each principle in depth and apply it to the Spring Boot Application. The idea is refactoring existing software based on these principles from architectural point of view.

The…


SRP: Single Responsibility Principle

Photo by Esther Jiao on Unsplash

(skip first paragraph if you have already read other parts of this blog series)

This article is the first part of the blog series, dedicated to well-known software design principles, that evolved over time and were finally summarised by Robert C. Martin with initials of the corresponding principles. These principles guide us how to build well-designed software systems, giving best practices for arranging classes, functions, building blocks. We will look at each principle in depth and apply it to the Spring Boot Application. The idea is refactoring existing software based on these principles from architectural point of view.

The word…

Ali Zeynalli

Senior Software Engineer with focus on Software Architecture, Software Design.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store