– Ngôn ngữ lập trình Go
– Một vòng tham quan trực tuyến về Go
– Cài đặt, thiết lập môi trường
– Cách tổ chức mã nguồn Go
Thực hành: Clone Underscore
– Tìm hiểu go routine, channel, defer, panic, recover
– Lập trình đa luồng đồng thời với Go
– Ghi nhật ký (Logging) và kiểm thử đơn vị (unit test)
Thực hành: Xây dựng ứng dụng Crawler với Go
– Làm việc với JSON
– Làm việc với Gin
– Làm việc với GORM / MySQL
– Xác thực và phân quyền
Thực hành: Sử dụng https://reqres.in/
– Tối ưu hóa mã hóa / giải mã JSON
– Tìm hiểu cách sử dụng kết nối Pool
– Tìm hiểu cách sử dụng bộ đệm (Cache)
– Một số thủ thuật hay
Thực hành: Xây dựng dịch vụ để tạo id tăng tự động
– Cài đặt môi trường với Docker
– Thiết lập TDD
– API kiểm tra hiệu suất
– Triển khai & giám sát
Thực hành: Xây dựng ứng dụng Todo với GraphQL
Xây dựng phần mềm nguồn mở của riêng bạn với Golang và thuyết trình sản phẩm.
$ go mod init go-module
go: creating new go.mod: module go-module
$ go build
go: finding github.com/labstack/gommon/color latest
go: finding github.com/labstack/gommon/log latest
go: finding golang.org/x/crypto/acme/autocert latest
go: finding golang.org/x/crypto/acme latest
go: finding golang.org/x/crypto latest
go: downloading golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a
go: extracting golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a
go: finding github.com/valyala/fasttemplate v1.0.1
go: finding github.com/mattn/go-isatty v0.0.7
go: downloading github.com/mattn/go-isatty v0.0.7
go: downloading github.com/valyala/fasttemplate v1.0.1
go: extracting github.com/mattn/go-isatty v0.0.7
go: extracting github.com/valyala/fasttemplate v1.0.1
$ go mod vendor
go: downloading golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
go: extracting golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
$ go run main.go
____ __
/ __/___/ / ___
/ _// __/ _ \/ _ \
/___/\__/_//_/\___/ v3.3.10-dev
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
O\
⇨ http server started on [::]:9090
Mac
env GIT_TERMINAL_PROMPT=1 go mod vendor
env GIT_TERMINAL_PROMPT=1 go get gitlab.ghn.vn/common-projects/go-sdk v0.1.31
Mac
$ export GO111MODULE=on
$ export GOPROXY=direct
$ export GOSUMDB=off
$ go get gitlab.ghn.vn/common-projects/go-sdk v0.1.31
Window
$env:GO111MODULE="on"
$env:GOPROXY="direct"
$env:GOSUMDB="off"
go get gitlab.ghn.vn/common-projects/go-sdk v0.1.31