Go – Advanced Techniques (GO2)
Programming, Rust
This course helps experienced Go developers use the language's simplicity and flexibility more effectively. You will study the Go data model, learn internal behaviour of slices and backing arrays, and see how choices affect runtime performance.
Gain practical skills to design robust APIs with interfaces and embedding, improve diagnostics using enhanced and typed errors, boost throughput via allocation tuning and profiling, and adopt reliable build & release workflows for production services.
Location, current course term
Contact us
The course:
Hide detail
-
Deeper into the data model
-
Slice internals (realloc, copy, grow), backing-array sharing
-
Map optimizations (key existence, iteration, allocations)
-
Interfaces, methods and API design
-
Contract programming with interfaces and small interfaces
-
io.Reader, io.Writer as idioms; adapting custom types
-
Embedding and composition of behavior
-
Error models and diagnostics
-
Enriching errors (fmt.Errorf("%w")), sentinels vs typed errors
-
Logging (log/slog), structured logs, levels and context
-
File and network I/O
-
os, bufio, filepath, context deadlines for I/O
-
Basics of net/http: client, server, middlewares
-
Performance and profiling
-
Allocation leaks, saving allocations, preallocation
-
Profiling: pprof, trace, -race (race detector)
-
Practical guidelines for fast, maintainable code
-
Build & release pipeline
-
Build tags, CGO_ENABLED, cross-compile, ldflags
-
Repo layout guidance for libraries versus applications
-
Assumed knowledge:
-
Basic knowledge of the Go language.
-
Recommended previous course:
-
Go – Introduction to Programming (GO1)
-
Recommended subsequent course:
-
Go – Generic Programming (GO3)
-
Schedule:
-
3 days (9:00 AM - 5:00 PM )
-
Language:
-