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.

Progress

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

Capstone
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

Phase Complete!

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.