Software Design Patterns & PrinciplesIntroduction & Core Concepts

54 items

1

Prototype Clone Aliasing in Domain Aggregate

Code Quiz
2

Domain Modeling vs Pattern Trade-offs

Quiz
3

The Four OOP Pillars

Quiz
4

Modeling a Has-A Relationship

Code Quiz
5

Modeling Relationships Between Classes

Quiz
6

Modeling Problems With Classes

Slides / Video
7

Modeling with Classes & Relationships

Flashcard
8

Inheritance and the super() Call

Code Quiz
9

Composition vs Inheritance Basics

Quiz
10

Patterns, Maintainability and Reusability

Slides / Video
11

When to Use Patterns (and When Not To)

Slides / Video
12

Anatomy of a Design Pattern

Slides / Video
13

What Are Design Principles

Slides / Video
14

The Three Pattern Categories

Slides / Video
15

Patterns vs Principles vs Idioms

Slides / Video
16

Origins of the Gang of Four

Slides / Video
17

Why Design Patterns Matter

Slides / Video
18

What Is a Software Design Pattern

Slides / Video
19

Composition Over Inheritance

Flashcard
20

Three Pattern Categories

Flashcard
21

What Is a Design Pattern

Flashcard
22

Cohesion

Flashcard
23

Abstraction

Flashcard
24

Origin: Gang of Four

Flashcard
25

When to Use Patterns

Flashcard
26

YAGNI Principle

Flashcard
27

Program to an Interface

Flashcard
28

SOLID Overview

Flashcard
29

DRY Principle

Flashcard
30

Encapsulation

Flashcard
31

Principle vs. Pattern

Flashcard
32

Coupling

Flashcard
33

Why Design Patterns Matter

Flashcard
34

KISS Principle

Flashcard
35

Separation of Concerns

Flashcard
36

What Is an Anti-Pattern

Flashcard
37

Patterns vs Architecture

Quiz
38

When to Apply Patterns

Quiz
39

Inheritance Basics

Quiz
40

Program to an Interface

Quiz
41

Encapsulation Basics

Quiz
42

Reusability and Maintainability

Quiz
43

Three Pattern Categories

Quiz
44

Origin of Design Patterns

Quiz
45

Composition Over Inheritance

Quiz
46

What Is a Design Pattern

Quiz
47

Patterns vs Principles

Quiz
48

Patterns vs Algorithms

Quiz
49

Anatomy of a Pattern

Quiz
50

Coupling and Cohesion

Quiz
51

What Is an Anti-Pattern

Quiz
52

Why Use Design Patterns

Quiz
53

Polymorphism Basics

Quiz
54

Abstraction in Design

Quiz
Code QuizAdvanced

Inheritance and the super() Call

Spot the classic subclass constructor bug that breaks JavaScript inheritance.

Codejavascript
class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    return `${this.name} makes a sound`;
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    this.breed = breed;
    super(name);
  }
  speak() {
    return `${this.name} barks`;
  }
}

const d = new Dog('Rex', 'Labrador');
console.log(d.speak());

What is the bug in the Dog class, and how do you fix it?