Skip to content

The Go Programming Language (Archives)

September 29, 2023
March 30, 2023

Archived Go Programming Language notes

Go 1.17 Release Notes - The Go Programming Language
Go 1.18 Release Notes - The Go Programming Language
Go 1.19 Release Notes - The Go Programming Language
Go 1.19 Release Notes - The Go Programming Language

Modules

previously vgo, "versioned Go"
alternative to GOPATH, added in Go 1.11 (2018-08)
control with GO111MODULE environment variable
default on if go.mod exists in Go 1.14 (2020-02)
package and binary management before Go 1.16 is quite messy

Go Modules in 2019 - go.dev plan for 2019
Using Go Modules - go.dev 2019-03, 1.11 5 part series

Go 1.11 Rocket Tutorial
跳出 Go module 的泥潭 | 鸟窝 1.11
Go module 再回顾 | 鸟窝 1.13

Modules Part 01: Why And What
Modules Part 02: Projects, Dependencies and Gopls
Modules Part 03: Minimal Version Selection
Modules Part 04: Mirrors, Checksums and Athens
Modules Part 05: Gopls Improvements
Modules Part 06: Vendoring

dep

obsolete

Dependency Management Tool - Google Docs

golang/dep: Go dependency management tool experiment (deprecated)
Go 1.11 Modules (vgo) vs dep · Issue #1959 · golang/dep

Vendoring

1.5's vendoring is obsolete, go mod can use vendor/ though
vendoring is good for locking dependencies in production build

Go Modules Reference - go.dev vendor/modules.txt in go.mod

Go's vendor/ = Node's node_modules/
import from project local instead of GOPATH
default in Go 1.7

Go 1.5 Vendor Experiment

Packages

Web

Martini

go-martini/martini: Classy web framework for Go no longer maintained
gorilla/mux: A powerful URL router and dispatcher for golang. no longer maintained, only routing
Build Server With Go Under 10 minutes - DEV Community 👩‍💻👨‍💻 with mux
Build a CRUD Rest API in Go using Mux, Postgres, Docker and Docker Compose - DEV Community

This Go package was archived. What do we do now? - YouTube
Gorilla Toolkit for Golang is revived! But is it too late? - YouTube