Phase 4Days 16-20
Packages, Modules, I/O & CLI Engineering
Official module layout, files, JSON, configuration, and maintainable commands
Phase Goal
Organize a real Go module and build reliable file- and network-facing command-line tools.
Day 16: Packages, Modules & internal
Day 17: Files, Readers, Writers & bufio
Day 18: JSON, Tags & Validation Boundaries
Day 19: CLI Flags, Config & Graceful UX
Day 20: Mini Project — Research Archive Catalog CLI
Research Archive Catalog CLI
Create and audit a deterministic catalog for a field-research archive, recording paths, sizes, media types, checksums, and required sidecar metadata.
- Streaming inspection without loading files into memory
- Atomic versioned catalog writes
- Distinct exit codes for drift, invalid metadata, and I/O failure
After this phase, you'll be able to:
- Package boundaries and exported identifiers
- go mod init, go.mod, go.sum, and MVS
- cmd and internal layout from official guidance
- go list, go doc, dependencies, and avoiding package cycles
- io.Reader and io.Writer as composable contracts
- os.File lifecycle and defer Close
- Buffered I/O and scanner limits
- Paths, permissions, atomic writes, and cleanup
You can apply Phase 4 skills in a finished, explainable Go project.