Standard Package Layout
Ben Johnson
28225

Ben, you write:

> An application may produce multiple binaries so we’ll use the Go convention of placing our main package as a subdirectory of the cmd package. For example, our project may have a myapp server binary but also a myappctlclient binary for managing the server from the terminal

I’m still a bit of Go n00b (6 months and counting!), I had thought the Go convention was having the *main* package be in the root of the repo? Can you point me at some other examples, or documentation of, this convention?

Also, I definitely see the virtue of that structure when there’s both server and client components. In the case of a little standalone CLI I’m working on, would you still recommend this structure, or (my sneaking suspicion) would it be overkill and slightly doctrinaire (in comparison to having *main* be in the root)?