Hi.
Welcome to the video course.
Go behavioral patterns by Mario Castro.
CONTRERAS A video caused by pact publishing.
I am Alister Ruane and I will be Mario's voice for this course.
Mario Castro Contreras is a software engineer who is specialized in distributed systems and big data
solutions.
He works as a site reliability engineer and now he is focused on containerized solutions and apps using
most of the Google Cloud Suite especially Cuban netters.
He has wide experience in systems and solutions integration and has written many scalable and reliable
12 factor apps using go and docker.
He has designed Big Data architectures for financial services and the media and he has written data
processing pipelines using event driven architectures entirely in go.
He is also very active in the open source community and you can find him on his get hub account with
the username Sidon.
In the past he has also written mobile applications and back ends in Java.
Mario is passionate about programming languages and he finds the best balance between fun and productivity
in go.
However recently he enjoys writing in rust and embedded systems in sea.
He is also passionate about road cycling and winter sports.
Now let's look at our course.
Cool.
So now let's talk about go go is a multi paradigm programming language that has built in facilities
to create concurrent applications design patterns allow developers to efficiently address common problems
faced while developing applications go design patterns will provide you with a reference point for software
design patterns and help to build applications in a more idiomatic robust and convenient way.
In go in this course we will focus on the behavioral patterns and go.
In other words we will learn to encapsulate behaviors for example algorithms in the strategy pattern
or executions in the Command pattern correct behavior.
Design is the last step after knowing how to deal with object creation and structures defining the behavior
correctly is the last step of good software design because all in all good software design lets us improve
algorithms and fix errors easily while the best algorithm implementation will not save us from bad software
design.
It is divided into three sections.
So our first section deals with the first behavioral pattern to make objects react in unexpected or
bounded way.
We'll start with the strategy pattern perhaps the most important design pattern in object oriented programming.
As many design patterns have something in common with it then we'll move to the chain of responsibility
to build chains of objects that can decide which between them must deal with a particular case.
Finally Command pattern to encapsulate actions that don't necessarily need to be executed immediately
or must be stored.
Then we will move on to the second section which continues with behavioral patterns introducing the
interpreter pattern a quite complex pattern to create small languages and interpreters for them.
The momento pattern is in front of our eyes every day with the undo button in apps the template pattern
helps developers by defining an initial structure of an operation so that the final users of the code
can finish it.
Then we will end this video with the third and last section which depicts the observer pattern an important
pattern that is becoming tremendously popular in distributed systems and reactive programming.
The visitor pattern deals with complex hierarchies of objects where you need to apply a particular action
depending on the object.
Finally the state pattern which is commonly used in video games and finite state machines and allows
an object to change its behavior depending on its own state.
Sounds great isn't it.
By the end of this course you will have an advanced knowledge of Go design patterns.
You will be well equipped with the implementations of most go design patterns.
Also you will be able to use the concepts learned here in your application development.
This course will enable you to understand and apply design patterns in an idiomatic way to produce concise
readable and maintainable software.
All you need to follow through the examples in this course is a computer running any recent version
of go.
While the examples all use go one point seven.
Knowledge of design patterns is optional.
You are expected to have basic knowledge of programming.
So let's get started right away.
I'm sure you'll be amazed after exploring this wonderful language.
See you there.