Design Patterns in Go

Discover the modern implementation of design patterns in Go (golang)

4.48 (1823 reviews)
Udemy
platform
English
language
Programming Languages
category
instructor
Design Patterns in Go
16,144
students
10 hours
content
Aug 2020
last update
$79.99
regular price

What you will learn

Recognize and apply design patterns

Refactor existing designs to use design patterns

Reason about applicability and usability of design patterns

Why take this course?

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.

Screenshots

Design Patterns in Go - Screenshot_01Design Patterns in Go - Screenshot_02Design Patterns in Go - Screenshot_03Design Patterns in Go - Screenshot_04

Reviews

Austin
November 12, 2023
A good, enjoyable course that got me hooked. Slightly outdated which is is understandable given it's a few years old but still a really nice overview of a lot of different concepts packed into a manageable length course. Would recommend :)
Mohamed
October 17, 2023
A generally informative course; however, it would be a valuable enhancement if the course were to incorporate generics into certain design patterns upon review.
Igor
September 17, 2023
I like this course. It is informative and straight to the point. I would suggest adding exercises and quizzes to the course.
Gustavo
September 11, 2023
It would be a lot better to have all files attached to one class instead of one file per class. It is really annoying to need to go to every class to download the files.
Philippe
August 1, 2023
Great course! not for beginners although things are really well explained. I would have liked to see the same code implementations for "similar" patterns but examples are good. Thanks!
Valeria
July 7, 2023
Muy buen curso! Lo único que le agregaría a los ejemplos serían diagramas UML, en mi caso yo los dibujaba y me ayudaban a entender un poco más las ideas. Todo lo demas excelente
Jorge
July 6, 2023
The explanation was really good. I think that SRP could be improved using just a slice of strings as input to the SaveToFile related function of Persistence type
Tom
June 30, 2023
Great course. Instructor is very knowledgeable. Would be nice if there was more visuals to the patterns and algorithms. Sometimes i'm just waiting for the lecture to finish to get a full picture what is being accomplished.
Alan
April 28, 2023
The instructor was very articulate and clear, even though I find I will not use most of these design patterns in my real world work life.
Anonymized
April 25, 2023
The course is really extensive and covers all the majors patterns a developer can use in their daily job. It does get overwhelming and difficult to distinguish between different patterns after a while.
Mauro
April 11, 2023
It is a good course but I think that explication it is in general while he is coding instead of explain before with some graphic the problem and how it is solved through the patterns
Juan
April 3, 2023
maybe update some resources to align with the video, e.g. Visitor classic has evaluator part on the video but in resource doesn't have it. Thank you, you have a excelent course
Gabriele
March 26, 2023
The best course on design patterns and design principles applied to Go I have found so far. The lectures are well structured and complex ideas are well explained. Code examples for all patterns are provided.
Benjamen
March 14, 2023
Excellent examples in Go vs the typical C++, Java, C#, or JavaScript examples featured by most design-patterns tutorial materials.
Rüdiger
December 28, 2022
I learned so much here about how things can be done in a cleaner way. Every developer doing something in GO should visit this course as it teaches you a lot of things other courses or tutorials do not. This is especially useful if you already know some design patterns in other programming languages and want to know the "Go way" of implementing them. Highly recommend!

Charts

Price

Design Patterns in Go - Price chart

Rating

Design Patterns in Go - Ratings chart

Enrollment distribution

Design Patterns in Go - Distribution chart
2653684
udemy ID
11/13/2019
course created date
2/7/2020
course indexed date
Bot
course submited by