Learn the SOLID programming principles to write more stable, scalable code. Get detailed examples and real-world examples of SOLID in action.
Overview
Syllabus
Introduction
- Welcome
- What you should know
- Using the exercise files
- What could go wrong?
- Explore a non-SOLID class
- Overview of the SOLID principles
- Introduction to interface segregation
- Segregate the example classes
- ISP applied to example classes
- The wrap vs. extend decision
- Extend alternatives
- Introduction to Liskov substitution
- Interface variations
- Substitution applied to example classes
- Default values for parameters
- Avoiding isinstance()
- Introduction to Open/Closed design
- Modify a class and fix bugs
- OCP via inheritance and composition
- More OCP extension techniques
- Introduction to dependency inversion
- Dependency injection and application configuration
- Testing consequences
- Introduction to single responsibility
- High cohesion and indirection
- GRASP patterns
- CRC Cards
- Test-driven design
- Next steps
Taught by
Steven Lott