Modules are Go's dependency system: go mod init example.com/app creates go.mod. Versions are semantic; go.sum records checksums for reproducible builds.
Common commands
go get module@v1.2.3— add or upgrade dependencygo mod tidy— add missing, remove unused modulesgo mod vendor— copy deps into vendor/ for air-gapped builds
Minimum version selection
Go resolves the minimum compatible versions satisfying all requirements—understand upgrades before bumping major versions in production.
Important interview questions and answers
- Q: go.mod vs go.sum?
A: go.mod declares module path and requirements; go.sum verifies content hashes. - Q: GOPATH still required?
A: Modules are default—GOPATH mainly legacy or global tool installs.
Self-check
- Which file lists module dependencies?
- What does go mod tidy do?
Pitfall: Commit both go.mod and go.sum—missing sums break reproducible CI builds.
Interview prep
- go.mod vs go.sum?
go.mod declares module; go.sum verifies dependency content hashes.
- go mod tidy?
Adds missing module requirements and removes unused ones.