Design Patterns in Go (Udemy.com)
Discover the modern implementation of design patterns in Go (golang)
Created by: Dmitri Nesteruk
Last updated August 2020
What you will learn
- Recognize and apply design patterns
- Refactor existing designs to use design patterns
- Reason about applicability and usability of design patterns
How it compares
Against the other 518 rated Udemy courses in Software Development on CourseDuck:
- Rating4.7 out of 5higher than 79% of them
- Reviews2,259#78 of 519 by number of reviews
- Length9.8 hourslonger than 66% of them
- Last updatedAugust 2020earlier than 87% of them
Course Description
Course Overview
This course provides a comprehensive overview of Design Patterns in Go from a practical perspective. This course in particular covers patterns with the use of:
The latest versions of the Go programming language
Use of modern programming libraries and frameworks
Use of modern developer tools such as JetBrains GoLand
Discussions of pattern variations and alternative approaches
This 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 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).
The original book GoF book used C++ and Smalltalk for its examples, but, since then, design patterns have been adapted to every programming language imaginable: C#, Java, Swift, Python, JavaScript and now — Go!
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 Course Cover?
This course covers all the GoF design patterns. In fact, here's the full list of what is covered:
SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and Visitor
Who Is the Course For?
This course is for Go 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 the Composite pattern allows structures to be iterable and lets scalar objects masquerade as if they were collections.
Presentation Style
This course is presented as a (very large) series of live demonstrations being done in JetBrains GoLand and presented using the Kinetica rendering engine. Kinetica removes the visual clutter of the IDE, 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 GoLand, or another IDE of your choice (or just run them from the command-line).
This course does not use UML class diagrams; all of demos are done via live coding.
Instructor Details
- 4.7 Rating
2,259 Reviews
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.
More courses by Dmitri Nesteruk
Learn Parallel Programming with C# and .NET (2019)
4.6 (4,564 Reviews)
Provider: Udemy
Time: 5.3h
$14.99
More Software Development courses
MATLAB Programming Simulink: Beginner to Pro with ChatGPT (2026)
5.0 (930 Reviews)
Provider: Udemy
Time: 9.6h
$10.99
Build Web Apps with Nuxt.js 3: Master TypeScript & API [New] (2026)
4.9 (635 Reviews)
Provider: Udemy
Time: 6.7h
$19.99
Terraform 101: The Ultimate Hands-On Guide [Azure Edition] (2025)
4.8 (1,975 Reviews)
Provider: Udemy
Time: 11.9h
$94.99
Reviews
By Peter van Beek on 1/5/2026
I found the course very useful with focus on practical, hands-on examples. Each pattern was explained with concrete Go code, which made it easier to see how to apply them in real projects. Sometimes I had to rewind and play parts back to fully comprehend everything, but that was perfectly fine and actually helped the material sink in.
By Matheus da Silva Alves on 12/14/2025
This isn't a course focused on someone who doesn't know a single thing in Golang, so, if you're just starting, learn the basics first, because, after you've learned the basics, there's ton of knowledge waiting for you, to improve a lot your Go knowledge. I really recommend this course for everyone with the basics topics already covered.
By Victor Ferreira on 9/23/2025
The course is good, it covers a nice range of patterns and I like the way the instructor explains using simple examples to make it clear and easy to understand. My only feedback here is about exercises, it would be better if you provide at least one exercise to put into practice the concepts learned of a particular section. I know we can find them online but it would be easier to have everything here at one place. Good work!
By James C on 11/19/2024
Good top level explanation of design patterns and implementation in Go. Could've done with some additional ideas on how or when to use them in some real world development application, especially in more complex systems, but otherwise a decent course.
By Chakshu Jain on 4/22/2024
Got exactly what I was looking for. Thanks for having this course in Golang. Would be exciting to see in Rust as well. Some suggestions: 1. Some lectures don't have caption support in English. Would be great if you could add. 2. I struggled to figure out how I am going to use these design patterns in my project, I mean what is the thought process like if I am working on some project then while writing code how the thought process should work like, which pattern to use where and exactly at what point of the project phase. Thank you again for having this course.
By Vineet Uprari on 1/19/2023
The author has done exceptional task of translating the oops concept with tools found in GoLang, This was an exceptional effort on his part. As a student of this course I found this course as a reinforcer to best practices in low level design. As a suggestion I would like the author to include class diagrams( some equivalent for GoLang) where he can demonstrate issues, challenges, and solution, before jumping to coding. Although he does explain all these but they are generally verbal communication without support of diagrams.
By Thanh Nguyen on 2/13/2022
The instructor is the best teacher in the advance subject of programming online courses. Speak clearly, direct to point, and coding example are also simple to understand and follow. Thank you so much, I have been struggling with advance code for sometime and after learning a few sections in the course I have already starting to see more clear some of the code that I have trouble understanding before. Best and highly recommended!
By Aman . on 5/23/2021
Above and over the fact that the instructor has taken a stab at almost all practical design patterns, it's the examples that sets this course apart. There's no "hello world" kind of examples that are typically ubiquitous in blog posts across the internet. These are fairly apt examples that demonstrate the best usage of the patterns. I also liked the fact that the instructor goes through the trade offs for each pattern and does not label any single pattern as a "god" pattern. I'm fairly confident in my abilities to use these patterns at work. Glad I bought this.
By Anonymized User on 3/23/2021
This was very good course. one suggestion is before jumping directly into the go programming and explaining the patterns it would be helpful if there was a real world example touching upon what is the problem, how this patterns solves it. Might help us to remember the application of the patterns
By Andrea Mazzanti on 3/26/2020
I’ve been using design patterns using several languages during my career, C,C++,Java,C#,SmallTalk, but I was really curios to see them in action with a language lacking of concept like classes or heritance. That course is proving that Ken Thomson is always right: you can write efficient and elegant code even without Generics or Super-Multi-Heritance, the contrary is true and this is also my opinion. This course is really good for refreshing your understanding on Patterns and also on how to apply them to modern problems and with a relatively new language as Go. Some feedback to Dimtri: Not having Class or Heritance is not a “problem” and was design decision for Go: below the Go team explaining in depth their design decisions: o https://www.youtube.com/watch?v=sln-gJaURzk&feature=youtu.be Think you should also treat the design pattern’s counterpart: Antipatterns. Could be an idea for a future version of the course It would be great if you could also code the examples using TDD or a least adding tests, I’ve done them by myself and you can find them on my GitHub repository here: https://github.com/Gammaglobulino/designpatterns_go In general I truly appreciated the deepest on how you treated every single pattern, looking forward to apply those to my coding style on GO.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 94 / 100









![Build Web Apps with Nuxt.js 3: Master TypeScript & API [New]](/programming/software-development/images/6457785_5adc_4.jpg?v=1789443959)

![Terraform 101: The Ultimate Hands-On Guide [Azure Edition]](/programming/software-development/images/6208847_f60a_7.jpg?v=1791193600)
