WEBVTT 00:08.680 --> 00:09.300 Hi. 00:09.430 --> 00:16.390 Welcome to the video cause introduction to go classical patterns by Mario Castro Contreras. 00:16.450 --> 00:19.030 A video caused by pact publishing. 00:19.140 --> 00:23.570 I am Alister Ruane and I will be Mario's voice for this course. 00:23.620 --> 00:29.800 Mario Castro Contreras is a software engineer who has specialized in distributed systems and big data 00:29.800 --> 00:30.910 solutions. 00:30.910 --> 00:37.540 He works as a site reliability engineer and now is focused on containerized solutions and apps using 00:37.540 --> 00:42.070 most of the Google Cloud Suite especially Cuban artists. 00:42.070 --> 00:48.130 He has a wide experience in systems and solutions integration and he has written many scalable and reliable 00:48.250 --> 00:55.420 12 factor apps using go and docker is designed to Big Data architectures for financial services and 00:55.420 --> 00:56.060 the media. 00:56.160 --> 01:02.800 And he has written data processing pipelines using event driven architectures entirely in go. 01:02.800 --> 01:08.080 He is also very active in the open source community and you can find him on his github account with 01:08.080 --> 01:10.180 the user name Satan. 01:10.240 --> 01:15.550 In the past he has also written mobile applications and back ends in Java. 01:15.610 --> 01:22.240 Mario is passionate about programming languages and he finds the best balance between fun and productivity 01:22.420 --> 01:23.620 in go. 01:23.620 --> 01:28.600 However recently he enjoys writing in rust and embedded systems in sea. 01:28.630 --> 01:33.270 He is also passionate about road cycling and winter sports cool. 01:33.820 --> 01:40.360 Let's not talk about go go is a multi paradigm programming language that has built in facilities to 01:40.360 --> 01:42.850 create concurrent applications. 01:42.850 --> 01:49.030 Design Patterns allow developers to efficiently address common problems faced while developing applications 01:49.690 --> 01:55.270 go design patterns will provide you with a reference point for software design patterns and help build 01:55.360 --> 02:00.570 applications in a more idiomatic robust and convenient way in go. 02:00.610 --> 02:06.250 The course starts with a brief introduction to go programming essentials and quickly moves on to explain 02:06.250 --> 02:12.250 the idea behind the creation of design patterns and how they appeared in the 90s as a common language 02:12.490 --> 02:18.460 among developers with which to solve common tasks in object oriented programming languages. 02:18.460 --> 02:20.810 Now let's take a look at our course. 02:20.830 --> 02:23.110 It's divided into four sections. 02:23.110 --> 02:28.150 Our first section attempts to help newcomers to the go programming language will have some background 02:28.150 --> 02:30.590 in any other programming language. 02:30.610 --> 02:35.140 It will begin by showing how to install the go environment in a Linux machine. 02:35.230 --> 02:38.480 Moving to syntax type and flow control. 02:38.770 --> 02:44.230 Following this we'll dive into the creation or patterns that introduce the problems that can arise when 02:44.230 --> 02:48.970 an object creation or management is particularly complex or expensive. 02:48.970 --> 02:56.020 Using Singleton builder factory and abstract factory design patterns then we'll move on to the third 02:56.020 --> 02:59.470 section which focuses on structural patterns. 02:59.560 --> 03:05.410 So our third section deals with the first set of structural patterns about object composition to get 03:05.410 --> 03:11.890 some new functionality such as creating an intermediate object and using various objects as if there 03:11.890 --> 03:20.260 is only one our last section is less oriented to multi object composition but focuses more on obtaining 03:20.260 --> 03:23.590 new functionality in existing objects. 03:23.590 --> 03:28.690 This section will add onto your skills in using the structural design patterns. 03:28.690 --> 03:34.630 Doesn't it sound amazing by the end of this course you will have a strong knowledge base in go and its 03:34.630 --> 03:36.160 classical design patterns. 03:36.220 --> 03:42.200 You will be well equipped with the basic syntax and all the tools needed to start coding in go. 03:42.200 --> 03:47.040 Also you'll be able to implement the concepts learned here in your application development. 03:47.050 --> 03:53.020 This course will enable you to understand and apply design patterns in an idiomatic way to produce concise 03:53.230 --> 03:56.350 readable and maintainable software. 03:56.440 --> 04:01.450 All you need to follow through the examples in this course is a computer running any recent version 04:01.510 --> 04:02.110 of go. 04:02.440 --> 04:09.760 While the examples all used go one point seven this course is for beginner level developers and go programming 04:09.760 --> 04:10.460 language. 04:10.630 --> 04:13.030 No knowledge of design patterns is expected. 04:13.030 --> 04:16.810 You are expected to have basic knowledge of programming. 04:16.960 --> 04:18.430 So what are we waiting for. 04:18.430 --> 04:21.280 Let's get started right now and let's go. 04:21.280 --> 04:24.220 I am sure you will have fun learning go.