This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
язык_программирования_golang [2023/05/05 12:45] val |
язык_программирования_golang [2025/01/12 06:20] (current) val [golangci-lint] |
||
---|---|---|---|
Line 4: | Line 4: | ||
* [[https://www.digitalocean.com/community/tutorials/how-to-build-and-install-go-programs|How To Build and Install Go Programs]] | * [[https://www.digitalocean.com/community/tutorials/how-to-build-and-install-go-programs|How To Build and Install Go Programs]] | ||
* [[https://www.systutorials.com/how-to-get-the-hostname-of-the-node-in-go/|How to get the hostname of the node in Go?]] | * [[https://www.systutorials.com/how-to-get-the-hostname-of-the-node-in-go/|How to get the hostname of the node in Go?]] | ||
+ | |||
+ | * [[https://min.io/docs/minio/linux/developers/go/minio-go.html|MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage]] | ||
<code> | <code> | ||
+ | student@client1:~$ sudo apt install golang-go | ||
+ | </code> | ||
+ | ===== Web приложение ===== | ||
+ | <code> | ||
+ | student@client1:~$ mkdir gowebd | ||
+ | |||
+ | student@client1:~$ cd gowebd/ | ||
+ | |||
student@client1:~/gowebd$ cat main.go | student@client1:~/gowebd$ cat main.go | ||
</code><code> | </code><code> | ||
Line 17: | Line 27: | ||
) | ) | ||
+ | const ver = "ver1.1" | ||
func main() { | func main() { | ||
Line 27: | Line 38: | ||
func HelloServer(w http.ResponseWriter, r *http.Request) { | func HelloServer(w http.ResponseWriter, r *http.Request) { | ||
- | name, err := os.Hostname() | + | hostname, err := os.Hostname() |
if err != nil { | if err != nil { | ||
panic(err) | panic(err) | ||
} | } | ||
- | fmt.Fprint(w, "Hello world from " + name + " ver1.1\n") | + | fmt.Fprint(w, "Hello world from gowebd on " + hostname + " " + ver + "\n") |
} | } | ||
</code><code> | </code><code> | ||
Line 40: | Line 51: | ||
student@client1:~/gowebd$ sudo go build -o /usr/local/sbin/gowebd | student@client1:~/gowebd$ sudo go build -o /usr/local/sbin/gowebd | ||
+ | student@client1:~/gowebd$ sudo /usr/local/sbin/gowebd | ||
+ | </code> | ||
+ | ===== golangci-lint ===== | ||
+ | |||
+ | * [[https://golangci-lint.run/welcome/quick-start/|golangci-lint.run quick-start]] | ||
+ | * [[https://blog.ildarkarymov.ru/posts/linters/|golangci-lint и внедрение его в большой проект]] | ||
+ | |||
+ | <code> | ||
+ | $ go mod init gowebd | ||
+ | или | ||
+ | $ cat go.mod | ||
+ | </code><code> | ||
+ | module gowebd | ||
+ | |||
+ | go 1.19 | ||
+ | </code><code> | ||
+ | ~/gowebd# time docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.62.2 golangci-lint run --timeout=10m | ||
+ | |||
+ | main.go:11:7: const `ver2` is unused (unused) | ||
+ | const ver2 = "ver1.3" | ||
+ | ^ | ||
+ | real 1m28.670s | ||
+ | </code> |