Complete projects to learn common app-related tasks in the Go programming language.
Overview
Syllabus
Introduction
- Recipes for practical projects with Go
- What you should know
- Working with numbers in Go
- Go slices
- Working with maps in Go
- Go error handling
- Using defer to manage resources
- Go panic recovery
- Challenge: Writing a filter
- Solution: Writing a filter
- Time arithmetic
- Measuring time
- Formatting time
- Parsing time
- Time zone conversion
- Challenge: Time
- Solution: Time
- Go string formatting
- Working with Unicode in Go
- Case insensitive comparisons in Go
- Go regular expressions
- Reading text files with Go
- Challenge: Text
- Solution: Text
- Go structs
- Go methods
- Go interfaces
- The empty interface
- Working with iota in Go
- Structs, methods, and interfaces
- Challenge: Structs, methods, and interfaces
- Solution: Structs, methods, and interfaces
- Unmarshalling JSON with Go
- Parsing complex JSON with Go
- Marshalling JSON with Go
- Dealing with zero and missing values in Go
- Using mapstructure to handle arbitrary JSON
- Challenge: JSON
- Solution: JSON
- HTTP calls in Go
- Authentication with Go
- Writing an HTTP server in Go
- REST with gorilla/mux
- Challenge: HTTP
- Solution: HTTP
- Converting sequential code to concurrent in Go
- Timeouts in Go
- sync.WaitGroup
- sync.Once
- Using a pool of goroutines
- sync/atomic
- Challenge: Concurrency
- Solution: Concurrency
- Next steps
Taught by
Miki Tebeka