====== Язык программирования Golang ======
* [[http://golang-book.ru/|Введение в программирование на Go]]
* [[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://min.io/docs/minio/linux/developers/go/minio-go.html|MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage]]
student@client1:~$ sudo apt install golang-go
===== Web приложение =====
student@client1:~$ mkdir gowebd
student@client1:~$ cd gowebd/
student@client1:~/gowebd$ cat main.go
package main
import (
"fmt"
"log"
"net/http"
"os"
)
const ver = "ver1.1"
func main() {
http.HandleFunc("/", HelloServer)
fmt.Printf("Starting server at port 80\n")
if err := http.ListenAndServe(":80", nil); err != nil {
log.Fatal(err)
}
}
func HelloServer(w http.ResponseWriter, r *http.Request) {
hostname, err := os.Hostname()
if err != nil {
panic(err)
}
fmt.Fprint(w, "Hello world from gowebd on " + hostname + " " + ver + "\n")
}
student@client1:~/gowebd$ sudo go run main.go
student@client1:~/gowebd$ go mod init gowebd
student@client1:~/gowebd$ sudo go build -o /usr/local/sbin/gowebd
student@client1:~/gowebd$ sudo /usr/local/sbin/gowebd
===== golangci-lint =====
* [[https://golangci-lint.run/welcome/quick-start/|golangci-lint.run quick-start]]
* [[https://blog.ildarkarymov.ru/posts/linters/|golangci-lint и внедрение его в большой проект]]
$ go mod init gowebd
$ 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"
^