Loading...
Loading...
Designing Go libraries and packages for long-term evolution. Covers API surface management, dependency direction, backwards compatibility, trade-offs between parameter objects and functional options, and testability via deterministic simulation.
npx skill4agent add stuckinforloop/harness go-lib-design| Reference | Topics |
|---|---|
| design-process | Four design axes, work backwards, minimize surface area |
| surface-area | Internal packages, no global state, unknown outputs, mutation guards |
| dependencies | Accept don't instantiate, accept interfaces, return structs |
| evolution | Breaking changes, param objects vs functional options, result objects |
| testability | |
internal/io.Reader*os.FileNewFromFileFooManagerutilcommonhelpershttptesttestTimeNow*rand.RandWithXfs.FS