
Illustrate the single responsibility principle by boosting cohesion by grouping area and perimeter with the square class, rendering with SquareUI, and reducing coupling via a Repository for database operations.
In this live coding session, we refactor the calculator to use a common CustomerProfile interface. Health, vehicle, and home insurance profiles implement isLoyalCustomer, demonstrating the Open Closed Principle and extensibility.
Apply the open-closed principle to keep software closed for modification while open for extension. See how it aligns with the single responsibility principle to improve design and reduce long-term costs.
Explore the Liskov Substitution Principle, ensuring objects are replaceable by subtypes without breaking correctness. See how is-a inheritance and ostrich versus bird expose design flaws and the wrong abstraction.
Split the large interface into three focused interfaces—IPrint, IScan, and IFax—and assign implementations to Xerox WorkCentre, HP, and Canon to enforce the interface segregation principle.
Explore the dependency inversion principle (dip) in SOLID design, showing how high level and low level modules depend on abstractions, not details.
Explore dependency injection by passing a ProductRepository into ProductCatalog, freeing the catalog from instantiation and promoting loose coupling with the SQLProductRepository.
Explore inversion of control, where a framework like Spring injects dependencies and instantiates objects, moving dependency management out of the main control flow into its own context.
Anyone can code. But what differentiates a professional software engineer from a hobbyist coder is how well-designed and well-coded the final product is. Code quality is hard to come by. Unfortunately, most coders start straight without understanding basic concepts of software design. This course will help a budding coder, as well as an established programmer who wants to learn better design and write quality code.
It is really important that you grasp the core concepts of SOLID thoroughly. Once you get the fundamentals right, writing quality code will come naturally to you.There are tons of free YouTube videos on SOLID, but they try to teach you in bits and pieces, and don't pick the right analogies and code snippets. What you need is a holistic picture, which is what this course aims to provide. I have spent considerable time and effort to come up with the content for this course. Each and every concept, each and every analogy, each and every code example has been meticulously picked in such a way the design principles stick to your mind. I have used graphical illustrations and real world analogies wherever possible to drive home the point.
Something else that is special about this course - The subtitles are hand-scripted and accurate. I have even checked the timings to guarantee accuracy. Most courses come with subtitles that are auto-generated using a Speech-To-Text Engine, the accuracy of which is fairly low. But not mine! I have taken pains to script my course to perfection and include the subtitles too. So if you are at work, and you want to put me on mute, please feel free, although I would like you to hear my voice narration. If you want to put me on mute, just enable the subtitles in Udemy and play!