Tag: go
All the articles with the tag "go".
Go Part 12 — Generics and Practical Patterns
Type parameters, constraints, table-driven tests, build tags, and go generate. Go's generics and practical tools summarized.
Go Part 11 — Packages and Modules
go mod, visibility rules, init(), project structure conventions, and internal packages. How to structure code in Go.
Go Part 10 — Concurrency Patterns
Worker pools, fan-out/fan-in, context.Context, timeouts, race conditions, and sync.Mutex. Practical Go concurrency patterns.
Go Part 9 — Goroutines and Channels
Goroutines, channels, directional channels, select, buffered channels, and WaitGroup. Building the foundations of Go concurrency.
Go Part 8 — Pointers
& and *, new, the difference between pass-by-value and pass-by-pointer, nil pointers, and struct pointers. The essentials of Go pointers.
Go Part 7 — Interfaces
Implicit implementation, the empty interface (any), type assertions, type switches, and io.Reader/Writer. Exploring Go's interface design philosophy.
Go Basics Part 6 — Structs and Methods
Struct declaration, pointer vs value receivers, embedding, constructor patterns, and tags. Go's approach to object-oriented programming.
Go Basics Part 5 — Arrays, Slices, and Maps
The difference between arrays and slices, what len/cap mean, how append works, and creating and iterating maps. The essentials of Go collections.
Go Basics Part 4 — Error Handling
The error interface, fmt.Errorf, errors.Is/As, custom errors, defer, and panic/recover. The complete guide to Go-style error handling.








