Go Language Modularization: Difference between revisions
(→TODO) |
No edit summary |
||
Line 19: | Line 19: | ||
A workspace may contain multiple [[#Project|projects]]. | A workspace may contain multiple [[#Project|projects]]. | ||
<font color=darkkhaki>Define the relationship between workspace and the <code>[[ | <font color=darkkhaki>Define the relationship between workspace and the <code>[[Go Development and Execution Environment#GOPATH|GOPATH]]</code> variable.</font> | ||
=<span id='Project'></span>Project= | =<span id='Project'></span>Project= |
Revision as of 00:59, 15 August 2023
External
Internal
Overview
A standard organization of the files that are part of a project makes easier to share code with other people who also use the same standard. Go workspaces encourage such a standard.
Overview
Workspaces
The standard workspace layout is:
. ├─ src ├─ pkg └─ bin
This layout is recommended, but not enforced.
A workspace may contain multiple projects.
Define the relationship between workspace and the GOPATH
variable.
Project
Packages
A package is a group of related source files. A package can be imported by other packages. Always, there must be one package called main
, which produces an executable as result of its compilation. Other packages do not produce executables as result of their compilation.
Must the package live in a directory with the same name?
Deplete, merge into this document and delete: Go Concepts - Packages
Declaring Packages
The main Package
The main
package produces an executable as result of its compilation. The main
package must have a function called main()
, which is where the code execution starts.
package main
import "fmt"
func main() {
fmt.Printf("hello\n")
}
Importing Packages
Dependencies
Vendoring
"Vendoring" is the act of making a local copy of a third party package your project depends on. This copy is traditionally placed inside each project and then saved in the project repository.
TODO
Deplete, merge into this document and delete: