\ 0:00 Introduction 6:00 A bit about me 7:01 Installing Go 7:52 Installing Visual Studio Code 9:21 Installing Make 10:49 Asking for help 12:04 Mistakes. We all make them. , the go keyword, and WaitGroups\ 13:10 What we’ll cover in this section 14:14 Creating GoRoutines 20:48 WaitGroups to the rescue 29:27 Writing tests with WaitGroups 36:22 go-concurrency-0240-goroutines-4 38:47 Challenge working with WaitGroup 41:12 Solution to Challenge Conditions, Mutexes, and an Introduction to Channels\ 46:13 What we’ll cover in this section 50:34 Race Conditions an example 55:45 Adding to our code 59:11 Testing for race conditions 1:02:51 A more complex example 1:16:06 Writing a test for our weekly income project 1:19:39 ProducerConsumer - Using Channels for the first time 1:27:16 Getting started with the Producer - the pizzeria function 1:37:13 Making a pizza the makePizza function 1:48:00 Finishing up the Producer code 1:55:29 Creating and running the consumer ordering a pizza 2:02:51 Finishing up our ProducerConsumer project 4.A Classic Problem The Dining Philosophers\ 2:07:30 What we’ll cover in this section 2:09:24 Getting started with the problem 2:15:19 Setting up our mutexes 2:21:05 Finishing up the code 2:30:11 Trying things out 2:32:20 Adding a delay to let a philosopher think 2:34:47 Challenge Printing out the order in which the philosophers finish eating 2:35:49 Solution to challenge 2:39:33 Writing a test for our program , and another classic The Sleeping Barber problem\ 2:45:02 What we’ll cover in this section 2:49:07 Introduction to channels 3:02:56 The select statement 3:15:08 Buffered Channels 3:21:26 Getting started with the Sleeping Barber project 3:26:59 Defining some variables, the barber shop, and getting started with the code 3:35:21 Adding a Barber 3:48:47 Starting the barbershop as a GoRoutine 3:55:10 Sending clients to the shop 4:03:03 Trying things out Project - Building a Subscription Service\ 4:07:14 What we’ll cover in this section 4:08:34 Setting up a simple web application 4:16:35 Setting up our Docker development environment 4:21:55 Adding postgres 4:30:07 Setting up a Makefile 4:34:27 Adding sessions & Redis 4:39:06 Setting up the application config 4:43:46 Setting up a route & handler for the home page, and starting the web server 4:50:12 Setting up templates and building a render function 5:08:45 Adding session middleware 5:10:52 Setting up additional stub handlers and routes 5:15:54 Implementing graceful shutdown 5:22:32 Populating the database 5:25:10 Adding a data package and database models 5:32:13 Implementing the loginlogout functions Email Concurrently\ 5:46:05 What we’ll cover in this section 5:47:46 Getting started with the mailer code 6:06:14 Building HTML and Plain Text messages 6:13:25 Sending a message (synchronously) 6:17:52 Getting started sending a message (asynchronously) 6:25:38 Writing a helper function to send email easily 6:27:30 Sending an email on incorrect login 6:30:26 Adding cleanup tasks to the shutdown() function a User and Displaying Plans\ 6:33:28 What we’ll cover in this section 6:34:29 Adding mail templates and URL signer code 6:39:49 Starting on the handler to create a user 6:48:56 Activating a user 6:54:56 Giving user data to our templates 6:57:38 Displaying the Subscription Plans page 7:10:15 Adding a route and trying things out for the Plans page 7:17:00 Writing a stub handler for choosing a plan Concurrency to Choosing a Plan\ 7:20:23 What we’ll cover in this section 7:21:24 Getting the plan id, the plan, and the user 7:29:04 Generating an Invoice 7:38:45 Generating a manual 7:59:56 Trying things out, subscribing a user, updating the session, and redirecting \ 8:12:08 What we’ll cover in this section 8:13:01 Setting up our tests 8:21:28 Testing Routes 8:29:29 Testing the Renderer 8:41:09 Modifying the data package to make it testable 8:55:18 Implementing the PlanTest type 8:59:44 Getting started testing Handlers 9:14:20 Testing the Login Handler 9:28:14 Testing a handler that uses concurrency
Hide player controls
Hide resume playing