What you'll learn
Gain deep understanding of SOLID principles
Understand the scope of SOLID principles
Adopt the best practices of object-oriented software design and architecture
Learn from examples of clean architecture and SOLID code
Experience with any object-oriented programming language
In this course you'll master SOLID principles - a set of guidelines for designing clean and maintainable software systems. By learning SOLID principles, you'll gain a deeper understanding into the magnificent world of software architecture.
SOLID principles embody more than 40 years of academic research and industry experience, distilled by several generations of software developers. Therefore, by mastering SOLID principles, you learn universal, time-proven tools for delivering high-quality software to your users.
SOLID is an acronym that stands for five principles:
- Single Responsibility Principle
- Open Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
In this course, you will learn SOLID principles in detail and understand their importance. You will discover how SOLID principles make your code flexible, extensible and readable. Eventually, you will discover that SOLID code is simply a joy to work with!
In addition to in-depth discussion of software architecture and SOLID, I will also share many interesting historical facts about the people behind these principles. This short historical detour will allow you to see the bigger picture and will make the course more colorful and interesting.
The topics covered in this course are complex, but important to learn. It's not an overstatement to say that understanding SOLID principles will give you a new level of insight into software architecture and object-oriented programming in general.
So, if you're a professional developer and you're serious about clean and maintainable code, this course is for you!
Who this course is for:
- Developers who want to improve their software architecture skills
About the instructor
I’m a professional Android developer with a wide range of technical interests. After working in microelectronics industry in the past, I’m now constantly amazed at the ability of software developers to turn ideas into products.
I really like teaching and find exceptional satisfaction in explaining complicated ideas in simple words.
My courses are aimed at professional software developers who take their job seriously and aim at technical excellence.