In this course you will learn why SOLID principles are important and how to apply them to write maintainable, scalable, and robust code.
SOLID is an acronym for 5 software design principles that were refined over a long period of time by multiple software engineers to address the core recurring problems in software development.
Take your code quality to the next level
In this course you will learn why SOLID principles are important and how to apply them to write maintainable, scalable, and robust code.
SOLID is an acronym for 5 software design principles that were refined over a long period of time by multiple software engineers to address the core recurring problems in software development.
Take your code quality to the next level
Code quality is important to have, and improving code quality is something that all software engineers should strive for. Luckily, writing quality code is a learnable skill, but it's sometimes hard to know where to start or what to learn next.
Do you know any programming language, but don't know what to do next? Maybe you are more experienced and are looking to add more to your arsenal or refresh your knowledge? If so, then learning the SOLID principles is a very good next step for you.
It doesn't matter if you're a beginner or have a background in software, the SOLID principles will make you a better software developer and will make you stand out from the crowd.
Build a SOLID foundation for software design and architecture
The goal of this course is to help you understand the core ideas behind software design and architecture that are used by experienced software engineers and architects. All without requiring you to memorize a bunch of object-oriented programming (OOP) design patterns.
Patterns only help you in specific situations, but when you encounter a new situation, memorized patterns cannot help you if you don't understand how they work. That's why in this course we'll be focusing on ideas behind the principles, what and why they are trying to achieve, and, most importantly, how they are trying to achieve it.
After taking this course you'll level up your programming skills and will be able to deal with code design problems that are new to you.
Acquire long-lasting skills
In this course I'll present you code examples in Java programming language. However, my goal is not to teach you Java or any other technology, my goal is to teach you the thought process behind writing better code and applying the SOLID principles.
At the end of this course you'll have skills that won't go out of fashion with the next popular technology change. SOLID principles have passed the test of time and are here to stay.
Course overview
Together, in this course we will explore real-world problems that software developers run into on a daily basis instead of studying textbook examples that barely represent reality.
You'll find a mix of relevant theory, practical coding exercises that will be done on-screen, and quizzes for you to take on your own. The quizzes are designed to convey the most important things, and you'll even be able to use them as a cheat sheet later.
On top of all this, the course has as little technical jargon as possible and I try to explain things in everyday language.
The course is divided into 5 sections, one for each of the principles:
Single Responsibility Principle
Open-Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
In each section we cover the required theory, and after that you are presented with a quiz that helps you better remember the theory before proceeding to a practical code example. After practical code examples we have a few more lectures to fill in any remaining gaps or explore things by looking at the bigger picture, we also explore when it would make sense to intentionally go against the SOLID principles for a better overall code design. The last part of each section is another quiz to further solidify your newly acquired knowledge.
By the end of this course you will be able to identify common problems in code, and you'll know how to correct them.
So, with all being said, if you're looking to improve your skills and write better code, look no further, because this course is for you.
This quiz covers lectures 13-15.
This quiz is about the basic ideas of the Single Responsibility Principle that we've covered in the previous 4 lectures and is intended to serve as a refreshment before we jump into the code example.
This quiz covers lectures 5-8.
This quiz covers lectures 9-12 and is intended to serve as a refreshment before we jump into the code example in the next lecture.
This quiz covers lectures 16-18 and is intended to serve as a refreshment before we jump into the code examples in the next lecture.
This quiz covers lectures 19-21.
This quiz covers lectures 22-25 and is meant to serve as a refreshment before we jump into the code example in the next lecture.
This quiz covers lectures 26-27.
This quiz covers lectures 28-30 and is meant to serve as a refreshment before we jump into the code example in upcoming lectures.
This quiz covers lectures 31-36.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.