Refactoring to a S.O.L.I.D. Foundation
In this session we take a small, functional but tightly-coupled, software solution and improve its design using each of Robert C. Martin's S.O.L.I.D. principles as follows: SRP: Single Responsibility Principle; OCP: Open-Close Principle; LSP: Liskov Substitution Principle; ISP: Interface Segregation Principle; DIP: Dependency Inversion Principle. Each principle is applied in sequence to the existing solution, making it possible for the attendee to observe the principle in relative isolation first while also evolving an understanding of how the principles all collaboratively reinforce each other when applied together. Before each principle is applied and the solution is refactored to introduce it, the attendee is presented with one or two simple PowerPoint slides to introduce the concept and provide some abstract understanding of its goals and benefits to OO programming. The principle is then applied to the existing solution, demonstrating the practical application of the principle to working software. At each step along the way, the existing solution (a simple console application) is re-executed, demonstrating that the overall behavior of the software solution has not been negatively impacted by the various refactorings.
Level: 100
Speaker: Steve Bohlen
Topics: Architecture
Reviews
-
dahlbyk
Great explanations and examples on an important topic!
-
rlundy
Excellent discussion of SOLID principles, with examples of each. I'll definitely be coming back to my notes on this talk.
