-
sbohlen 4.7
Description:
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.
Comments on this Talk
sbohlen,
21 Jul 02:58 PM
Jeff: Fair point about the var topic (and I think I agree); no place in this talk since even though its TRUE, its not at all ON-POINT. Thanks for the feedback (this is how I improve!).
FWIW, the var diversion was something that I added only about two deliveries of this ago and your comment has convinced me that I need to drop it back out of this talk!
Thanks again --!
Last Five Ratings
-
Russell Drown
-
Steve Deering
-
Gerhard Weiss
-
Steven Ball
-
Doug Hawes

A great presentation for seasoned veterans and n00bs alike; one that is bound to improve your refactoring/coding skills regardless of skill level. Steve's presentation style is fluid and engaging with well thought out examples and pithy observations.
However, his crusade to educate about the "var" keyword, though admirable and most definitely correct, tended to detract from the main topic and for me, was a detriment to an otherwise excellent presentation.