
Refactoring improves software design, making maintenance easier, changes safer, and defects easier to locate for teams including new developers throughout requirements analysis, design, development, and testing.
Refactoring restructures software with tools and techniques to improve modifiability and readability while preserving external behavior. It covers renaming, moving features, and making the code solid-compliant, guided by Martin Fowler.
Learn how solid principles guide building accessible and maintainable software without changing its behavior, starting with a hello world example to introduce practical concepts.
Refactor a hollywood-like app to remove tight coupling and hardcoded messages, implementing the five solid principles: single responsibility, open/closed, substitution, interface segregation, and dependency inversion.
The single responsibility principle states that one class should have only one responsibility, so reading and writing are split into two separate classes to keep the design solid and compliant.
Explore dependency inversion and interface segregation by refactoring a hello world to use abstractions and separate interfaces, coding against interfaces rather than concrete implementations, and applying client-specific interfaces.
Explore the open-closed and Liskov substitution principles through a hands-on demo that renames components, demonstrates open for extension, and swaps implementations for interchangeable behavior.
This course starts from the ground up. It starts with a ground-up and talks about the SOLID principles.
The course then picks up the pace and introduces an ASP.NET MVC Application written with the intention of demonstrating the capabilities of the Entity Framework.
Refactoring is making small changes to the application without affecting the observable behavior of the application and at the same time improving the design of the application.
Why Refactoring?
A lot of developers complain that they are familiar with most or all of the techniques of refactoring. They have knowledge of Object-Oriented Programming and Design Patterns as well. But when they work on their projects they hit a roadblock. After some point, it gets very difficult to write clean code. Code that is flexible, extensible, and at the same time is easy to understand, change, and maintain. In complex business applications, it is extremely difficult for most to apply these rules.
When the applications are older and they are supposed to port it to newer platforms it gets more challenging.
This course takes a practical approach. In an existing application that is significantly complex, the course adds test cases which becomes the safety net. The application is then refactored using the SOLID principles and other design patterns which improves the design of the application.