-
Race Conditions, Mutexes, and an Introduction to Channels
12 Lessons-
PreviewWhat we'll cover in this section
-
PreviewRace Conditions: an example
-
StartAdding sync.Mutex to our code
-
StartTesting for race conditions
-
StartA more complex example
-
StartWriting a test for our weekly income project
-
StartProducer/Consumer - Using Channels for the first time
-
StartGetting started with the Producer - the pizzeria function
-
StartMaking a pizza: the makePizza function
-
StartFinishing up the Producer code
-
StartCreating and running the consumer: ordering a pizza
-
StartFinishing up our Producer/Consumer project
-
-
A Classic Problem: The Dining Philosophers
6 Lessons -
Channels and another classic: The Sleeping Barber problem
10 Lessons-
PreviewWhat we'll cover in this section
-
PreviewIntroduction to channels
-
StartThe select statement
-
StartBuffered Channels
-
StartGetting started with the Sleeping Barber project
-
StartDefining some variables, the barber shop, and getting started with the code
-
StartAdding a Barber
-
StartStarting the barbershop as a GoRoutine
-
StartSending clients to the shop
-
StartTrying things out
-
-
Final Project: Building a Subscription Service
15 Lessons-
PreviewWhat we'll cover in this section
-
StartSetting up a simple web application
-
StartSetting up our Docker development environment
-
StartAdding postgres
-
StartSetting up a Makefile
-
StartAdding sessions & Redis
-
StartSetting up the application config
-
StartSetting up a route & handler for the home page, and starting the web server
-
StartSetting up templates and building a render function
-
StartAdding session middleware
-
StartSetting up additional stub handlers and routes
-
StartImplementing graceful shutdown
-
StartPopulating the database
-
StartAdding a data package and database models
-
StartImplementing the login/logout functions
-
-
Sending Mail Concurrently
8 Lessons-
PreviewWhat we'll cover in this section
-
StartGetting started with the mailer code
-
StartBuilding HTML and Plain Text messages
-
StartSending a message (synchronously)
-
StartGetting started sending a message (asynchronously)
-
StartWriting a helper function to send email easily
-
StartSending an email on incorrect login
-
StartAdding cleanup tasks to the shutdown() function
-
-
Registering a User and Displaying Plans
8 Lessons-
PreviewWhat we'll cover in this section
-
StartAdding mail templates and URL signer code
-
StartStarting on the handler to create a user
-
StartActivating a user
-
StartGiving user data to our templates
-
StartDisplaying the Subscription Plans page
-
StartAdding a route and trying things out for the "Plans" page
-
StartWriting a stub handler for choosing a plan
-
-
Testing
9 Lessons-
PreviewWhat we'll cover in this section
-
PreviewSetting up our tests
-
StartTesting Routes
-
StartTesting the Renderer
-
StartModifying the data package to make it testable
-
StartImplementing the PlanTest type
-
StartGetting started testing Handlers
-
StartTesting the Login Handler
-
StartTesting a handler that uses concurrency
-
