- Hello World
- data types & variables
- strings
- Call by Value & by Reference
- Text output
- Functions
- Control structures
- Exercise: multiplication table
- Further basics: errors, types, conversion...
- The
os
package - Write into a file
- Exec Example
- Exercise: wc command
- Exercise: cat command
- Exercise: tac command
- Structs
- Pointers
- Pointer and Structs
- Pointer and Slices/Maps
- Exercise: Key-Value store
- Gopath
- Go Toolchain
- Packages
- Methods
- Objects
- Embedding
- Overriding
- Interfaces
- Exercise: object oriented Key-Value
- Exercise: Testing with mocks
- Http Basics
- Handy features of the
http
package http.Client
- TLS & HTTP2 mit Go
- Middleware
- http testing
- Web Frameworks & alternative Router
- Tests
- stretchr/testify
- Testing multiple packages
- Coverage
- Data Driven Tests
- Benchmarks
- Mocking
- Exercise: Calculator with tests
- Exercise: Benchmarking the Key-Value store
- Simplicity is Complicated, Rob Pike
- Concurrency Is Not Parallelism, Rob Pike
- Go Concurrency Patterns, Rob Pike
- Advanced Go Concurrency Patterns, Sameer Ajmani
- Dont Just Check Errors Handle Them Gracefully, Dave Cheney