resource to check:

https://dave.cheney.net/2014/12/01/five-suggestions-for-setting-up-a-go-project

naming in go : https://www.youtube.com/watch?v=sFUSP8Au_PE

go module is a dependency management system

go modules can be initialised using

go mod init <module path>

module : collection of related packages

packages : collection of related go source files

go.mod file consists all the dependencies required to run go source files

in go a dependency can be added using

go get 

the files of the dependency are stored in /usr/local/go/pkg/mod directory in Ubuntu, so there is no need to use .gitignore as the dependency files as go source files will be in different directory

Documentation:

resource: https://go.dev/blog/examples