Skip to content

Instantly share code, notes, and snippets.

@jsam
Created August 31, 2017 07:23
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jsam/daf0c7b7fb839b0b54decc3be71e740c to your computer and use it in GitHub Desktop.
Save jsam/daf0c7b7fb839b0b54decc3be71e740c to your computer and use it in GitHub Desktop.
dpgo

Design patterns with Go

Course Materials

  • Handouts / Worksheets
  • Slides
  • Code Examples
  • Videos

Course objectives

In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

The goal of this course is to analyze solutions to most common design problems. Our aim is to show that this analysis is highly practical and useful approach to take your programming thinking to the next level. We will cover multiple categories of design patterns and show through multiple examples how they work and where they can be applied.

Requirements

  • Basic knowledge of programming
  • Working installation of Golang

Video structure (ADEPT)

  • Motivation / Why are we talking about this topic?
  • Explanation of the topic
    • Analogy
    • Diagram
    • Example
    • Plain English
    • Technical details
  • Assignment / Practice problems

Syllabus

  • [] Creational Patterns
  • [] Abstract Factory
  • [] Builder
  • [] Factory
  • [] Prototype
  • [] Singleton
  • [] Structural Patterns
  • [] Adapter
  • [] Bridge
  • [] Composite
  • [] Decorator
  • [] Facade
  • [] Flyweight
  • [] Proxy
  • [] Behavioral Patterns
  • [] Chain of Responsibility
  • [] Command
  • [] Interpreter
  • [] Iterator
  • [] Mediator
  • [] Memento
  • [] Observer
  • [] State
  • [] Strategy
  • [] Template Method
  • [] Visitor
  • [] Concurrency patterns
  • [] Active Object
  • [] Balking
  • [] Binding properties
  • [] Blockchain
  • [] Double-checked locking
  • [] Event-based asynchronous
  • [] Guarded suspension
  • [] Join
  • [] Lock
  • [] Messaging design pattern
  • [] Monitor object
  • [] Read-Write Lock
  • [] Scheduler
  • [] Thread pool
  • [] Thread-specific storage

Stats:

  • 41 Videos
  • AVG Length: 10min
  • Total: 410 minutes (6.8 hours)
  • Examples: 41 - 82
  • Handouts + Exercises: 41 - 82
  • Projects: 10 - 15

Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment