I would avoid multiple go.mod files in one repository as well. I generally 
follow the rule of thumb, one module per repository.

On Saturday, 29 February 2020 19:03:34 UTC+1, Sankar wrote:
>
> I am starting a new project (say `hello`) and I am totally confused about 
> what package structure to use. 
>
> I am going to go with a monolithic source repository which would be 
> checked out under `~/src` directory in the developer machines.
>
> I have three golang binaries available in my project.
>
> 1) hello-cli : A tool that would give me a CLI, which will be used from my 
> client machines. Say something similar to the docker-cli
> 2) hello-daemon: A daemon to which the CLI tools will talk to. Say 
> something similar to docker-daemon
> 3) hello-api-server: A HTTP server to which the daemon will talk. Say 
> something similar to dockerhub API server.
>
> In addition to these three golang binaries, I may have other things like a 
> webui, some static assets, some integration tests etc. in multiple 
> languages.
>
> There will be some libraries that will be used by each of the golang 
> binaries that will be internal only to the specific binaries and there will 
> be some libraries, which will be shared across the three binaries. The 
> three binaries may depend on different versions of the libraries.
>
> Now the package structure that I thought was:
>
> [image: Screenshot 2020-02-29 at 11.28.45 PM.png]
>
> Will this be good or should I make any change ? I am not sure if vendoring 
> would work fine here as there would be no `github.com/` 
> <http://github.com/> etc. prefix (or even GOPATH) as I want to checkout 
> under a special path (`~/src`).
>
> I have attached the hello.zip file also. Does this package structure work 
> ? Or should I do something different ?
>
> Thanks.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/7a6a6bae-ff45-4af2-ad4e-6b452dc11b39%40googlegroups.com.

Reply via email to