LEFT | RIGHT |
(no file at all) | |
1 <!--{ | 1 <!--{ |
2 "title": "About the go command" | 2 "title": "About the go command" |
3 }--> | 3 }--> |
4 | 4 |
5 <p>The Go distribution includes a command, named | 5 <p>The Go distribution includes a command, named |
6 "<code><a href="/cmd/go/">go</a></code>", that | 6 "<code><a href="/cmd/go/">go</a></code>", that |
7 automates the downloading, building, installation, and testing of Go packages | 7 automates the downloading, building, installation, and testing of Go packages |
8 and commands. This document talks about why we wrote a new command, what it | 8 and commands. This document talks about why we wrote a new command, what it |
9 is, what it's not, and how to use it.</p> | 9 is, what it's not, and how to use it.</p> |
10 | 10 |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 <h2>Configuration versus convention</h2> | 42 <h2>Configuration versus convention</h2> |
43 | 43 |
44 <p>The way to achieve the simplicity of a configuration-free system is to | 44 <p>The way to achieve the simplicity of a configuration-free system is to |
45 establish conventions. The system works only to the extent that those convention
s | 45 establish conventions. The system works only to the extent that those convention
s |
46 are followed. When we first launched Go, many people published packages that | 46 are followed. When we first launched Go, many people published packages that |
47 had to be installed in certain places, under certain names, using certain build | 47 had to be installed in certain places, under certain names, using certain build |
48 tools, in order to be used. That's understandable: that's the way it works in | 48 tools, in order to be used. That's understandable: that's the way it works in |
49 most other languages. Over the last few years we consistently reminded people | 49 most other languages. Over the last few years we consistently reminded people |
50 about the <code>goinstall</code> command | 50 about the <code>goinstall</code> command |
51 (now replaced by <a href="/cmd/go/#Download_and_install_packages_and_dependencie
s"><code>go get</code></a>) | 51 (now replaced by <a href="/cmd/go/#hdr-Download_and_install_packages_and_depende
ncies"><code>go get</code></a>) |
52 and its conventions: first, that the import path is derived in a known way from | 52 and its conventions: first, that the import path is derived in a known way from |
53 the URL of the source code; second, that the place to store the sources in | 53 the URL of the source code; second, that the place to store the sources in |
54 the local file system is derived in a known way from the import path; third, | 54 the local file system is derived in a known way from the import path; third, |
55 that each directory in a source tree corresponds to a single package; and | 55 that each directory in a source tree corresponds to a single package; and |
56 fourth, that the package is built using only information in the source code. | 56 fourth, that the package is built using only information in the source code. |
57 Today, the vast majority of packages follow these conventions. | 57 Today, the vast majority of packages follow these conventions. |
58 The Go ecosystem is simpler and more powerful as a result.</p> | 58 The Go ecosystem is simpler and more powerful as a result.</p> |
59 | 59 |
60 <p>We received many requests to allow a makefile in a package directory to | 60 <p>We received many requests to allow a makefile in a package directory to |
61 provide just a little extra configuration beyond what's in the source code. | 61 provide just a little extra configuration beyond what's in the source code. |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 to generate the Go files and then check those generated source files | 256 to generate the Go files and then check those generated source files |
257 into your repository. This is more work for you, the package author, | 257 into your repository. This is more work for you, the package author, |
258 but it is significantly less work for your users, who can use | 258 but it is significantly less work for your users, who can use |
259 "<code>go get</code>" without needing to obtain and build | 259 "<code>go get</code>" without needing to obtain and build |
260 any additional tools.</p> | 260 any additional tools.</p> |
261 | 261 |
262 <h2>More information</h2> | 262 <h2>More information</h2> |
263 | 263 |
264 <p>For more information, read <a href="/doc/code.html">How to Write Go Code</a> | 264 <p>For more information, read <a href="/doc/code.html">How to Write Go Code</a> |
265 and see the <a href="/cmd/go/">go command documentation</a>.</p> | 265 and see the <a href="/cmd/go/">go command documentation</a>.</p> |
LEFT | RIGHT |