Design Patterns in Go
What you’ll learn
Recognize and apply design patterns
Refactor existing designs to use design patterns
Reason about applicability and usability of design patterns
Requirements
Good understanding of Go
Familiarity with latest Go language features
Good understanding of software design principles
A computer with latest Go compiler and (hopefully) an IDE
Description
Course OverviewThis 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 languageUse of modern programming libraries and frameworksUse of modern developer tools such as JetBrains GoLandDiscussions 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 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 PrincipleCreational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and SingletonStructrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and ProxyBehavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and VisitorWho 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 StyleThis 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.
Overview
Section 1: Introduction
Lecture 1 Introduction
Section 2: SOLID Design Principles
Lecture 2 Overview
Lecture 3 Single Responsibility Principle
Lecture 4 Open-Closed Principle
Lecture 5 Liskov Substitution Principle
Lecture 6 Interface Segregation Principle
Lecture 7 Dependency Inversion Principle
Lecture 8 Summary
Section 3: Builder
Lecture 9 Overview
Lecture 10 Builder
Lecture 11 Builder Facets
Lecture 12 Builder Parameter
Lecture 13 Functional Builder
Lecture 14 Summary
Section 4: Factories
Lecture 15 Overview
Lecture 16 Factory Function
Lecture 17 Interface Factory
Lecture 18 Factory Generator
Lecture 19 Prototype Factory
Lecture 20 Summary
Section 5: Prototype
Lecture 21 Overview
Lecture 22 Deep Copying
Lecture 23 Copy Method
Lecture 24 Copy Through Serialization
Lecture 25 Prototype Factory
Lecture 26 Summary
Section 6: Singleton
Lecture 27 Overview
Lecture 28 Singleton
Lecture 29 Problems with Singleton
Lecture 30 Singleton and Dependency Inversion
Lecture 31 Summary
Section 7: Adapter
Lecture 32 Overview
Lecture 33 Adapter
Lecture 34 Adapter Caching
Lecture 35 Summary
Section 8: Bridge
Lecture 36 Overview
Lecture 37 Bridge
Lecture 38 Summary
Section 9: Composite
Lecture 39 Overview
Lecture 40 Geometric Shapes
Lecture 41 Neural Networks
Lecture 42 Summary
Section 10: Decorator
Lecture 43 Overview
Lecture 44 Multiple Aggregation
Lecture 45 Decorator
Lecture 46 Summary
Section 11: Façade
Lecture 47 Overview
Lecture 48 Façade
Lecture 49 Summary
Section 12: Flyweight
Lecture 50 Overview
Lecture 51 Text Formatting
Lecture 52 User Names
Lecture 53 Summary
Section 13: Proxy
Lecture 54 Overview
Lecture 55 Protection Proxy
Lecture 56 Virtual Proxy
Lecture 57 Proxy vs Decorator
Lecture 58 Summary
Section 14: Chain of Responsibility
Lecture 59 Overview
Lecture 60 Method Chain
Lecture 61 Command Query Separation
Lecture 62 Broker Chain
Lecture 63 Summary
Section 15: Command
Lecture 64 Overview
Lecture 65 Command
Lecture 66 Undo Operations
Lecture 67 Composite Command
Lecture 68 Functional Command
Lecture 69 Summary
Section 16: Interpreter
Lecture 70 Overview
Lecture 71 Lexing
Lecture 72 Parsing
Lecture 73 Summary
Section 17: Iterator
Lecture 74 Overview
Lecture 75 Iteration
Lecture 76 Tree Traversal
Lecture 77 Summary
Section 18: Mediator
Lecture 78 Overview
Lecture 79 Chat Room
Lecture 80 Summary
Section 19: Memento
Lecture 81 Overview
Lecture 82 Memento
Lecture 83 Undo and Redo
Lecture 84 Memento vs Flyweight
Lecture 85 Summary
Section 20: Observer
Lecture 86 Overview
Lecture 87 Observer and Observable
Lecture 88 Property Observers
Lecture 89 Property Dependencies
Lecture 90 Summary
Section 21: State
Lecture 91 Overview
Lecture 92 Classic Implementation
Lecture 93 Handmade State Machine
Lecture 94 Switch-Based State Machine
Lecture 95 Summary
Section 22: Strategy
Lecture 96 Overview
Lecture 97 Strategy
Lecture 98 Summary
Section 23: Template Method
Lecture 99 Overview
Lecture 100 Template Method
Lecture 101 Functional Template Method
Lecture 102 Summary
Section 24: Visitor
Lecture 103 Overview
Lecture 104 Intrusive Visitor
Lecture 105 Reflective Visitor
Lecture 106 Dispatch
Lecture 107 Classic Visitor
Lecture 108 Summary
Section 25: Course Summary
Lecture 109 Course Summary
Lecture 110 End of Course
Software engineers,Web developers,Designers,Architects
Course Information:
Udemy | English | 9h 46m | 3.53 GB
Created by: Dmitri Nesteruk
You Can See More Courses in the Developer >> Greetings from CourseDown.com