Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Design Patterns in TypeScript
Rating: 4.1 out of 5(197 ratings)
1,255 students

Design Patterns in TypeScript

Write cleaner code and enhance your development skills with TypeScript design patterns
Last updated 9/2018
English

What you'll learn

  • Identify and avoid violations of the SOLID Principles
  • Create single instances of classes throughout your apps with the Singleton pattern
  • Use factories to get instances and object pools
  • Understand Dependency Injection and work with its benefits
  • Use InversifyJS and learn about dependency scope
  • Extend objects with the Decorator pattern
  • Convert interfaces using the Adapter and Facade patterns
  • Choose implementations on runtime using the Strategy pattern
  • Use the Observer pattern to notify your app's components about changes
  • Store application state using the State pattern

Course content

5 sections27 lectures4h 47m total length
  • The Course Overview3:04

    This video shows the entire overview of the course.

  • Introduction to SOLID4:46

    SOLID principles can upgrade the code someone writes. The problem is, they are complex.

    • Describe what SOLID means

    • Brief summary of all principles

  • The Single Responsibility Principle9:02

    It’s fairly common for developers to write classes that do more than one thing.

    • Demonstrate a method that besides its main task, it also tackles error handling and HTML

    • Refactor the method to adhere to the Single Responsibility principle

  • The Open/Closed Principle8:01

    The Open/Closed principle is rarely used as developers keep adding stuff to their classes.

    • Describe what “Closed to modification” means

    • Explain what “Open to extension” means

    • Demonstrate a comprehensive example

  • The Liskov Substitution Principle7:59

    The Liskov Substitution Principle is perhaps the hardest of the five. We need to provide a high quality explanation without making the video long and boring.

    • Theoretical examination

    • Use a “Quiz App” example

  • The Interface Segregation Principle9:16

    According to the Interface Segregation principle, a class shouldn’t be forced to implement a method that it does not need or can’t implement.

    • Create an ISmartDevice interface

    • Implement it in a phone

    • Show how a tablet can’t implement all the methods and therefore needs segregation

  • The Dependency Inversion Principle12:20

    Dependency Inversion is so vital that a part of it, Dependency Injection will have its own section. But for now we need to demonstrate how important it is.

    • Explain Dependency Inversion and loose coupling in theory

    • Demonstrate tight coupling’s downsizes

    • Implement a service the correct way by connecting to an abstraction

Requirements

  • No prior knowledge of design patterns is required for this course.

Description

In programming, there are several problems that occur frequently. To solve these problems, there are various repeatable solutions; these are known as design patterns. Design patterns are a great way to improve the efficiency of your programs and improve your productivity; you'll learn them all in this course. This course is a collection of the most important patterns you need to improve application performance and productivity.

This course starts by exploring SOLID principles to write clean code. Then you will create new objects and instance of classes with creational design Patterns. Next, you will utilize dependency injection with InversifyJS to create testable, maintainable, and extensible code.

Moving on, you will explore structural design patterns to better express the relationships between different application entities. Lastly, you will investigate behavioral patterns to add flow to your applications and add levels of communication between your entities.

About the Author

Dimitris Loukas is a software engineer currently working with Angular, Node .js, and Docker for a referral marketing startup. He is also developing trading software applications using C# and Aurelia. He has worked for two startups in the past, is active in the open source community, and loves taking up small side-projects. He has developed microservices using C# and Node .js and has also mastered Angular, Aurelia, and Vue .js.. He was an early adopter of .NET Core and is fascinated by modern JavaScript and where the web is going.

Who this course is for:

  • This video is for TypeScript/JavaScript developers with basic TypeScript knowledge who want to build and maintain complex applications using design patterns.