Design Patterns in Python (Udemy.com)

Discover the modern implementation of design patterns in Python

Created by: Dmitri Nesteruk

Produced in 2021

icon
What you will learn

  • Recognize and apply design patterns
  • Refactor existing designs to use design patterns
  • Reason about applicability and usability of design patterns

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 88 / 100

icon
Course Description

Course OverviewThis course provides a comprehensive overview ofDesign Patterns in Pythonfrom a practical perspective. This course in particular covers patterns with the use of:
The latest versions of the Python programming languageUse of modern programming approaches:
dependency injection, reactive programming and moreUse of modern developer tools such as JetBrainsPyCharmDiscussions of pattern variations and alternative approachesThis course provides an overview of all the Gang of Four (GoF)design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.
What are Design Patterns?
Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 bookDesignPatterns:
Elements of Reusable Object-Oriented SoftwarebyErich Gamma,John Vlissides, Ralph Johnson and Richard Helm(who are commonly known as a Gang of Four, hence the GoF acronym).
The original book was written using C++and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable:
C#, Java, Python and even programming languages that aren't strictly object-oriented, such as JavaScript.
The appeal of design patterns is immortal:
we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.
What Patterns Does This CourseCover?
This course coversallthe GoF design patterns. In fact, here's the full list of what is covered:
SOLIDDesign Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle andDependency Inversion PrincipleCreational Design Patterns:
Builder, Factories (Factory Method and AbstractFactory), Prototype andSingletonStructrural Design Patterns: Adapter, Bridge,Composite, Decorator, Faade,Flyweight andProxyBehavioral Design Patterns: Chain of Responsibility,Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, TemplateMethod and VisitorWho Is the Course For?
This course is for Python developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way. For example, the use of decorators and metaclasses allows us to prepackage certain patterns for easy re-use.
Presentation StyleThis course is presented as a (very large)series of live demonstrations being done in JetBrainsPyCharm and presented using theKinetica rendering engine.
Kinetica removes the visual clutter of theIDE, making you focus on code, which is rendered perfectly, whether you are watching the course on a big screen or a mobile phone.
Most demos are single-file, so you can download the file attached to the lesson and run it in PyCharm, IDLE or anotherIDEof your choice. This course does not use UMLclass diagrams; all of demos are done via live coding.
Who this course is for:
Software engineersDesignersArchitects

icon
Instructor Details

Dmitri Nesteruk

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.

icon
Reviews

4.4

130 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Gangadhar on 12/13/2020

The examples provided in SOLID principles should have been with more practical cases rather than some random use cases.

By Rohit Singla on 12/13/2020

Concepts are covered but at a very high-level. No explanations of why we are doing or using things. Not getting even a single idea of how the design patterns work.
Need to watch videos multiple times to understand and need to do own research lot. Not suitable for anyone.

By John Cochrane on 12/6/2020

Gave me some pointer on better coding techniques/approaches. I'm probably gonna need to do some refactoring of stuff I wrote previously. There is a lot to take in and internalize here!

By Charalambos Maxoutis on 11/25/2020

Thank you Dimitri! It was a great course with a lot of insight into the Design Patterns using Python. Definitely 5/5 stars

By Jeheon Park on 11/15/2020

It was a perfect lecture for me to improve my coding skills.

By Pranay Devarasetti on 11/12/2020

Really enjoyed this course! Implementing the patterns with examples is what i loved the most

By Eyal Segal on 10/27/2020

Great course! from basics to advance. highly recommend

By Prakhar Dev Gupta on 10/18/2020

This is explained very well. I got the intuition of SRP. But the class and variable names should have been more proper.

By Kunal Shah on 10/15/2020

I was very hopeful when i bought this course. However, it turned out to be one of the worse courses i bought on udemy. Its not that the instructor hasn't tried to cover content or his understanding of he subject, but it's the manner in which he has covered those things that throws me off.
- He is more focused on coding instead of explaining what does any design pattern covers. No UML diagrams, nothing.. Just typing away on code as though that helps
- Most of the example he takes are so contrived.. he could have taken simple examples instead of convoluted ones
- He could have paused to explain away difference between adapter, bridge, composite etc.. but its code code code on his parts
- He seems to speed up when things get complex in his code.. often copy, pasting, scrolling etc.

By Arvind Dutt on 10/12/2020

First of all let me say not everywhere you'll get design pattern understanding
for python (C++,Java is available but this is not) and although this course requires good knowledge of python but the benefits you'll reap will outnumber the efforts you put in. This is something that you can apply in your production level codes(of course with mods) and see results.
Good job buddy!!

By Greyder Alen on 10/12/2020

Excellent course! I learned some new things about Python, even though the course wasn't intended to teach that, and new ways to design future software solutions.

By Jose Contreras on 10/6/2020

Good! We have to avoid God Objects!!!