Software Design Patterns & Principles
Introduction & Core Concepts
45 lessons in Software Design Patterns & Principles
- Patterns, Maintainability and ReusabilitySlides / Video
- When to Use Patterns (and When Not To)Slides / Video
- Anatomy of a Design PatternSlides / Video
- What Are Design PrinciplesSlides / Video
- The Three Pattern CategoriesSlides / Video
- Patterns vs Principles vs IdiomsSlides / Video
- Origins of the Gang of FourSlides / Video
- Why Design Patterns MatterSlides / Video
- What Is a Software Design PatternSlides / Video
- Origin: Gang of FourFlashcard
- Composition Over InheritanceFlashcard
- KISS PrincipleFlashcard
- Three Pattern CategoriesFlashcard
- DRY PrincipleFlashcard
- Separation of ConcernsFlashcard
- AbstractionFlashcard
- Program to an InterfaceFlashcard
- What Is an Anti-PatternFlashcard
- Why Design Patterns MatterFlashcard
- CouplingFlashcard
- Principle vs. PatternFlashcard
- When to Use PatternsFlashcard
- EncapsulationFlashcard
- What Is a Design PatternFlashcard
- SOLID OverviewFlashcard
- CohesionFlashcard
- YAGNI PrincipleFlashcard
- Patterns vs ArchitectureQuiz
- Three Pattern CategoriesQuiz
- Composition Over InheritanceQuiz
- What Is a Design PatternQuiz
- Patterns vs PrinciplesQuiz
- Patterns vs AlgorithmsQuiz
- Anatomy of a PatternQuiz
- Coupling and CohesionQuiz
- What Is an Anti-PatternQuiz
- Abstraction in DesignQuiz
- Inheritance BasicsQuiz
- Encapsulation BasicsQuiz
- When to Apply PatternsQuiz
- Reusability and MaintainabilityQuiz
- Origin of Design PatternsQuiz
- Program to an InterfaceQuiz
- Why Use Design PatternsQuiz
- Polymorphism BasicsQuiz