Table Of Contents
-
Chapter 2 : Primitive Types Variables and Basic Syntax
-
Chapter 4 : Composite Types Arrays Slices Maps Structs
- 4.1 Arrays
- 4.2 Slices
- 4.3 Maps
- 4.4 Structs
- 4.5 Struct embedding
- 4.6 Pointers
- 4.7 Sorting
- 4.8 Sorting by functions
- 4.9 Text templates
- 4.10 Regular expressions
- 4.11 JSON
- 4.12 XML
- 4.13 Time
- 4.14 Epoch
- 4.15 Time formatting and parsing
- 4.16 Random numbers
- 4.17 URL parsing
- 4.18 SHA256 hashes
- 4.19 Base64 encoding
- 4.20 Project Student Grades Database
-
Chapter 5 : Functions Methods and Error Handling
-
Chapter 6 : Packages Modules and Visibility
-
Chapter 7 : Interfaces and Polymorphism
-
Chapter 9 : Concurrency Goroutines Channels and Context
- 9.1 Goroutines
- 9.2 Channels
- 9.3 Channel buffering
- 9.4 Channel synchronization
- 9.5 Channel directions
- 9.6 Select statement
- 9.7 Timeouts
- 9.8 Non blocking channel operations
- 9.9 Closing channels
- 9.10 Range over channels
- 9.11 Timers
- 9.12 Tickers
- 9.13 Worker pools
- 9.14 WaitGroups
- 9.15 Rate limiting
- 9.16 Atomic counters
- 9.17 Mutexes
- 9.18 Stateful goroutines
- 9.19 Context package
- 9.20 Signals
- 9.21 Spawning processes
- 9.22 Execing processes
- 9.23 Project Concurrent URL fetcher
-
Chapter 10 : CLI Mastery Build a Publishable Task Manager
- 10.1 Why CLI tools in Go
- 10.2 Basic CLI with os.Args and flag
- 10.3 Command line flags
- 10.4 Command line subcommands
- 10.5 Environment variables
- 10.6 Logging
- 10.7 Advanced CLI with cobra and viper
- 10.8 Reading files
- 10.9 Writing files
- 10.10 Line filters
- 10.11 File paths
- 10.12 Directories
- 10.13 Temporary files and directories
- 10.14 Testing and benchmarking
- 10.15 HTTP client
- 10.16 HTTP server
- 10.17 TCP server
- 10.18 CLI best practices
- 10.19 Project CLI Task Manager publishable
- 10.20 Deliverables