☰ Mục lục series
Tài liệu Go tiếng Việt
  1. Bắt đầu (Getting started)
    1. Tổng quan
    2. Tải về và cài đặt
    3. Bắt đầu với Go
    4. Quản lý các bản cài đặt Go
    5. Plugin trình soạn thảo và IDE
  2. Dạo quanh Go (A Tour of Go)
    1. Chào mừng
    2. Package, biến và hàm
    3. Điều khiển luồng
    4. Struct, slice và map
    5. Method và interface
    6. Generics
    7. Xử lý đồng thời
  3. Hướng dẫn (Tutorials)
    1. Danh sách hướng dẫn
    2. Tạo một Go module
    3. Gọi mã của bạn từ một module khác
    4. Trả về và xử lý lỗi
    5. Trả về lời chào ngẫu nhiên
    6. Trả về lời chào cho nhiều người
    7. Thêm một test
    8. Biên dịch và cài đặt ứng dụng
    9. Kết luận
    10. Bắt đầu với workspace nhiều module
    11. Phát triển RESTful API với Go và Gin
    12. Truy cập cơ sở dữ liệu quan hệ
    13. Bắt đầu với generics
    14. Bắt đầu với fuzzing
    15. Làm việc với JSON
    16. Tìm và sửa các dependency có lỗ hổng với govulncheck
    17. Tìm và khắc phục phụ thuộc có lỗ hổng với VS Code Go
    18. Viết ứng dụng web
  4. Viết code Go
    1. Cách viết mã Go
    2. Effective Go
    3. Doc Comment trong Go
  5. Module
    1. Phát triển và publish module
    2. Quản lý phụ thuộc
    3. Tổ chức một module Go
    4. Quản lý mã nguồn của module
    5. Cách đánh số phiên bản module
    6. Quy trình phát hành và đánh phiên bản module
    7. Publish một module
    8. Phát triển một bản cập nhật major version
    9. Tham chiếu tệp go.mod
    10. Ngừng hỗ trợ 'go get' cho việc cài đặt tệp thực thi
  6. Cơ sở dữ liệu (Database)
    1. Truy cập cơ sở dữ liệu quan hệ
    2. Mở một handle cơ sở dữ liệu
    3. Thực thi câu lệnh SQL không trả về dữ liệu
    4. Truy vấn dữ liệu
    5. Dùng prepared statement
    6. Thực thi transaction
    7. Huỷ các thao tác đang chạy
    8. Quản lý kết nối
    9. Tránh rủi ro SQL injection
  7. Chẩn đoán và hiệu năng
    1. Chẩn đoán
    2. Hướng dẫn về Go Garbage Collector
    3. Tối ưu hoá dựa trên profile
    4. Data Race Detector
    5. Gỡ lỗi mã Go bằng GDB
    6. Hỗ trợ coverage profiling cho integration test
  8. Bảo mật (Security)
    1. Tổng quan bảo mật
    2. Thực hành tốt về bảo mật cho lập trình viên Go
    3. Quản lý lỗ hổng trong Go
    4. Cơ sở dữ liệu lỗ hổng của Go
    5. Quét lỗ hổng trong IDE
    6. Chính sách CNA của Go
    7. Go Fuzzing
    8. Chi tiết kỹ thuật của Go Fuzzing
    9. Chính sách bảo mật của Go
    10. Threat Model của Go
    11. Các quyết định về bảo mật của Go
    12. Tuân thủ FIPS 140-3
  9. Công cụ và toolchain
    1. Tài liệu về các lệnh
    2. Về lệnh go
    3. Go Toolchains
    4. Telemetry của Go
    5. Cài đặt Go từ mã nguồn
    6. Cài đặt và sử dụng gccgo
  10. Tham khảo
    1. Câu hỏi thường gặp (FAQ)
    2. Go 1 và tương lai của các chương trình Go
    3. Hướng dẫn chuyển đổi sang encoding/json/v2
    4. Hướng dẫn đóng góp
    5. Đóng góp cho frontend gccgo
  11. Phụ lục
    1. Bảng thuật ngữ
Module

Publish một module

Bản dịch từ go.dev/doc/modules/publishing

Khi bạn muốn cung cấp một module cho các lập trình viên khác, bạn publish nó để các công cụ Go nhìn thấy được. Sau khi bạn đã publish module, các lập trình viên import package của nó sẽ có thể giải quyết phụ thuộc vào module bằng cách chạy các lệnh như go get.

Lưu ý: Đừng thay đổi một phiên bản đã gắn tag của module sau khi đã publish nó. Với các lập trình viên đang dùng module, các công cụ Go xác thực module tải về dựa trên bản sao được tải về đầu tiên. Nếu hai bản khác nhau, các công cụ Go sẽ trả về một lỗi bảo mật. Thay vì thay đổi mã nguồn của một phiên bản đã publish trước đó, hãy publish một phiên bản mới.

Xem thêm

Các bước publish

Dùng các bước sau để publish một module.

  1. Mở một cửa sổ dòng lệnh và chuyển vào thư mục gốc của module trong repository cục bộ.

  2. Chạy go mod tidy, lệnh này loại bỏ mọi phụ thuộc mà module có thể đã tích tụ nhưng không còn cần thiết nữa.

    $ go mod tidy
  3. Chạy go test ./... một lần cuối để chắc chắn mọi thứ vẫn hoạt động.

    Lệnh này chạy các unit test bạn đã viết bằng framework testing của Go.

    $ go test ./...
    ok      example.com/mymodule       0.015s
  4. Gắn tag cho dự án với một số phiên bản mới bằng lệnh git tag.

    Với số phiên bản, hãy dùng một con số báo hiệu cho người dùng bản chất của những thay đổi trong bản phát hành này. Để biết thêm, xem Cách đánh số phiên bản module.

    $ git commit -m "mymodule: changes for v0.1.0"
    $ git tag v0.1.0
  5. Đẩy tag mới lên repository origin.

    $ git push origin v0.1.0
  6. Cung cấp module bằng cách chạy lệnh go list để nhắc Go cập nhật chỉ mục module của nó với thông tin về module bạn đang publish.

    Đặt trước lệnh này một câu lệnh thiết lập biến môi trường GOPROXY trỏ tới một proxy của Go. Điều này bảo đảm yêu cầu của bạn đến được proxy.

    $ GOPROXY=proxy.golang.org go list -m example.com/[email protected]

Các lập trình viên quan tâm đến module của bạn sẽ import một package từ nó và chạy lệnh go get giống như với bất kỳ module nào khác. Họ có thể chạy lệnh go get để lấy phiên bản mới nhất, hoặc có thể chỉ định một phiên bản cụ thể, như trong ví dụ sau:

$ go get example.com/[email protected]

Nội dung gốc: Go Documentation © The Go Authors, giấy phép CC BY 3.0. Bản dịch và ghi chú: Lê Văn Dũng.