Go là một ngôn ngữ lập trình được tạo ra từ cảm giác bất mãn tại Google. Các nhà phát triển luôn phải chọn giữa một ngôn ngữ thực thi hiệu quả nhưng mất nhiều thời gian biên dịch, hoặc một ngôn ngữ dễ lập trình nhưng chạy không hiệu quả trong môi trường sản xuất. Go được thiết kế để có được cả ba đặc điểm: thời gian biên dịch nhanh, dễ lập trình và thực thi hiệu quả trong sản xuất.
Mặc dù Go là một ngôn ngữ lập trình đa năng có thể được sử dụng cho nhiều dự án lập trình khác nhau, nhưng nó đặc biệt phù hợp cho các chương trình mạng và hệ thống phân tán. Nhờ đó, Go đã trở thành ngôn ngữ tiêu biểu của “đám mây”. Ngôn ngữ này tập trung vào việc hỗ trợ lập trình viên hiện đại tối ưu hóa công việc với bộ công cụ mạnh mẽ, loại bỏ các tranh luận về định dạng mã bằng cách tích hợp định dạng vào ngay trong đặc tả ngôn ngữ, đồng thời giúp việc triển khai trở nên dễ dàng bằng cách biên dịch thành một tệp nhị phân duy nhất. Go cũng rất dễ học, với số lượng từ khóa cực kỳ ít, khiến nó trở thành lựa chọn lý tưởng cho cả người mới bắt đầu lẫn lập trình viên giàu kinh nghiệm.
Để lập trình Go hiệu quả trên Ubuntu 18.04, bạn cần một môi trường ổn định. Sử dụng VPS giá rẻ từ các nhà cung cấp uy tín giúp tối ưu chi phí, đảm bảo hiệu suất cao cho dự án lập trình của bạn. Khám phá các gói VPS phù hợp ngay hôm nay!
Sau đây, DataOnline sẽ giúp bạn cài đặt và cấu hình một môi trường lập trình Go thông qua dòng lệnh. Chúng tôi sẽ tập trung vào quy trình cài đặt trên Ubuntu 18.04, nhưng các nguyên tắc chung cũng có thể áp dụng cho các bản phân phối Debian Linux khác.
Yêu cầu tiên quyết
Bạn sẽ cần một máy tính hoặc máy ảo có cài đặt Ubuntu 18.04, cũng như có quyền quản trị trên máy đó và kết nối Internet. Bạn có thể tải hệ điều hành này qua trang phát hành của Ubuntu 18.04.
Bước 1 – Cài đặt Go
Trong bước này, bạn sẽ cài đặt Go bằng cách tải về bản phát hành hiện tại từ trang tải chính thức của Go.
Để làm điều này, bạn cần tìm URL của tệp tarball nhị phân phát hành hiện tại. Bạn cũng cần ghi chú giá trị băm SHA256 được liệt kê bên cạnh, vì bạn sẽ dùng giá trị này để xác minh tệp đã tải về.
Bạn sẽ thực hiện việc cài đặt và thiết lập thông qua dòng lệnh, tức là thay vì nhấp chuột, bạn sẽ gõ lệnh và nhận phản hồi từ máy tính thông qua văn bản.
Dòng lệnh, còn được gọi là shell hoặc terminal, giúp bạn thay đổi và tự động hóa nhiều tác vụ hàng ngày trên máy tính, và là công cụ không thể thiếu đối với các nhà phát triển phần mềm. Có rất nhiều lệnh terminal để học nhằm mở rộng khả năng của bạn. Để biết thêm thông tin về dòng lệnh, hãy xem bài hướng dẫn “Giới thiệu về Linux Terminal”.
Trên Ubuntu 18.04, bạn có thể tìm ứng dụng Terminal bằng cách nhấp vào biểu tượng Ubuntu ở góc trên bên trái màn hình và gõ “terminal” vào ô tìm kiếm. Nhấp vào biểu tượng Terminal để mở nó. Hoặc bạn có thể nhấn tổ hợp phím CTRL, ALT và T cùng lúc để mở Terminal tự động.
Ubuntu Terminal
Khi Terminal mở ra, bạn sẽ cài đặt thủ công các tệp nhị phân của Go. Mặc dù bạn có thể sử dụng trình quản lý gói như apt-get, nhưng việc đi qua các bước cài đặt thủ công sẽ giúp bạn hiểu các thay đổi cấu hình cần thiết để có một không gian làm việc Go hợp lệ.
Trước khi tải về Go, hãy đảm bảo bạn đang ở trong thư mục chính (~):
cd ~
Sử dụng curl để tải về tệp tarball từ URL bạn đã sao chép từ trang tải của Go:
curl -LO https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz
Tiếp theo, sử dụng sha256sum để xác minh tệp tarball:
sha256sum go1.12.1.linux-amd64.tar.gz
Giá trị băm hiển thị khi chạy lệnh trên phải trùng khớp với giá trị trên trang tải về. Nếu không, tệp đó không hợp lệ và bạn nên tải lại.
Output
2a3fdabf665496a0db5f41ec6af7a9b15a49fbe71a85a50ca38b1f13a103aeec go1.12.1.linux-amd64.tar.gz
Tiếp theo, giải nén tệp đã tải và cài đặt nó vào vị trí mong muốn trên hệ thống. Theo khuyến cáo tốt nhất, hãy giữ nó trong /usr/local:
sudo tar -xvf go1.12.1.linux-amd64.tar.gz -C /usr/local
Bây giờ, bạn sẽ có một thư mục có tên go trong thư mục /usr/local.
Lưu ý: Mặc dù /usr/local/go là vị trí được khuyến cáo chính thức, một số người dùng có thể thích hoặc yêu cầu các đường dẫn khác.
Trong bước này, bạn đã tải và cài đặt Go trên máy Ubuntu 18.04 của mình. Ở bước tiếp theo, bạn sẽ cấu hình không gian làm việc Go của mình.
Bước 2 – Tạo không gian làm việc Go
Bây giờ, bạn có thể tạo không gian làm việc lập trình của mình vì Go đã được cài đặt. Không gian làm việc Go sẽ chứa hai thư mục chính:
- src: Thư mục chứa các tệp nguồn Go. Một tệp nguồn là tệp bạn viết bằng ngôn ngữ lập trình Go. Các tệp nguồn được biên dịch bởi trình biên dịch Go để tạo ra tệp nhị phân có thể thực thi.
- bin: Thư mục chứa các tệp thực thi được xây dựng và cài đặt bởi các công cụ của Go. Các tệp thực thi là các tệp nhị phân chạy trên hệ thống của bạn và thực hiện các nhiệm vụ. Đây thường là các chương trình được biên dịch từ mã nguồn của bạn hoặc mã nguồn Go từ bên thứ ba.
Thư mục src có thể chứa nhiều kho lưu trữ kiểm soát phiên bản (như Git, Mercurial, Bazaar). Điều này cho phép bạn thực hiện các import “chuẩn” của mã trong dự án, ví dụ như import một gói với đường dẫn đầy đủ như github.com/dataonline/godo.
Bạn sẽ thấy các thư mục như github.com, golang.org, hoặc các thư mục khác khi chương trình của bạn import các thư viện bên thứ ba. Nếu bạn sử dụng kho lưu trữ như github.com, bạn cũng sẽ đặt dự án và các tệp nguồn của mình trong thư mục đó. Chúng ta sẽ khám phá khái niệm này sau.
Dưới đây là ví dụ về cấu trúc không gian làm việc điển hình:
. ├── bin │ ├── buffalo # command executable │ ├── dlv # command executable │ └── packr # command executable └── src └── github.com └── dataonline └── godo ├── .git # Git repository metadata ├── account.go # package source ├── account_test.go # test source ├── ... ├── timestamp.go ├── timestamp_test.go └── util ├── droplet.go └── droplet_test.go
Thư mục mặc định cho không gian làm việc Go từ phiên bản 1.8 trở đi là thư mục go trong thư mục chính của người dùng, hay $HOME/go. Nếu bạn dùng phiên bản Go cũ hơn 1.8, vẫn nên sử dụng $HOME/go cho không gian làm việc.
Chạy lệnh sau để tạo cấu trúc thư mục cho không gian làm việc Go:
mkdir -p $HOME/go/{bin,src}
Tham số -p cho phép mkdir tạo tất cả các thư mục cha nếu chưa tồn tại. Sử dụng {bin,src}
sẽ tạo cả thư mục bin và src.
Cấu trúc thư mục sẽ như sau:
└── $HOME └── go ├── bin └── src
Trước Go 1.8, bạn cần đặt biến môi trường cục bộ $GOPATH. $GOPATH báo cho trình biên dịch biết nơi tìm các tệp mã nguồn của bên thứ ba cũng như các tệp mã nguồn cục bộ. Mặc dù bây giờ không bắt buộc phải đặt biến này, nhưng vẫn là một thói quen tốt vì nhiều công cụ bên thứ ba phụ thuộc vào biến này.
Bạn có thể đặt $GOPATH bằng cách thêm biến môi trường toàn cục vào file ~/.profile. Bạn cũng có thể thêm vào file .zshrc hoặc .bashrc tùy thuộc vào cấu hình shell của bạn.
Đầu tiên, mở file ~/.profile bằng nano hoặc trình soạn thảo yêu thích:
nano ~/.profile
Thêm dòng sau để đặt $GOPATH:
export GOPATH=$HOME/go
Khi Go biên dịch và cài đặt các công cụ, nó sẽ đặt chúng vào thư mục $GOPATH/bin. Để thuận tiện, bạn thường thêm thư mục $GOPATH/bin vào biến PATH trong file ~/.profile:
export PATH=$PATH:$GOPATH/bin
Cuối cùng, thêm thư mục chứa tệp nhị phân của Go vào PATH:
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
Thao tác này giúp các công cụ Go có sẵn ở bất cứ đâu trên hệ thống.
Để cập nhật shell, chạy lệnh sau để tải lại biến môi trường:
. ~/.profile
Kiểm tra biến PATH đã được cập nhật:
echo $PATH
Output
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin
Bạn cũng sẽ thấy đường dẫn đến các công cụ của Go ở /usr/local/go/bin.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin
Xác minh cài đặt bằng cách kiểm tra phiên bản hiện tại của Go:
go version
Và bạn sẽ nhận được kết quả như sau:
Output
go version go1.12.1 linux/amd64
Giờ đây, khi đã tạo không gian làm việc và đặt biến môi trường $GOPATH, bạn có thể tạo các dự án trong cấu trúc thư mục như sau. Ví dụ, nếu bạn sử dụng github.com làm kho lưu trữ:
$GOPATH/src/github.com/username/project
Ví dụ, nếu bạn đang làm việc trên dự án ủa DataOnline nó sẽ được lưu tại:
$GOPATH/src/github.com/dataonline/godo
Cấu trúc dự án này giúp các dự án có sẵn với công cụ go get và hỗ trợ khả năng đọc mã nguồn sau này. Bạn có thể xác minh bằng cách dùng lệnh go get để tải thư viện godo:
go get github.com/dataonline/godo
Lệnh này sẽ tải thư viện godo và tạo thư mục $GOPATH/src/github.com/dataonline/godo
trên máy của bạn.
Kiểm tra xem gói godo đã được tải thành công hay chưa bằng cách liệt kê thư mục:
ll $GOPATH/src/github.com/dataonline/godo
Bạn sẽ thấy kết quả như sau:
Output
drwxr-xr-x 4 root root 4096 Apr 5 00:43 ./ drwxr-xr-x 3 root root 4096 Apr 5 00:43 ../ drwxr-xr-x 8 root root 4096 Apr 5 00:43 .git/ -rwxr-xr-x 1 root root 8 Apr 5 00:43 .gitignore* -rw-r--r-- 1 root root 61 Apr 5 00:43 .travis.yml -rw-r--r-- 1 root root 2808 Apr 5 00:43 CHANGELOG.md -rw-r--r-- 1 root root 1851 Apr 5 00:43 CONTRIBUTING.md . . . -rw-r--r-- 1 root root 4893 Apr 5 00:43 vpcs.go -rw-r--r-- 1 root root 4091 Apr 5 00:43 vpcs_test.go
Trong bước này, bạn đã tạo không gian làm việc Go và cấu hình các biến môi trường cần thiết. Ở bước tiếp theo, bạn sẽ kiểm tra không gian làm việc bằng một đoạn mã đơn giản.
Bước 3 – Tạo một chương trình đơn giản
Bây giờ, khi không gian làm việc Go đã được thiết lập, hãy tạo một chương trình “Hello, World!” để kiểm tra cấu hình không gian làm việc và làm quen với Go. Vì chúng ta chỉ tạo một tệp nguồn Go đơn lẻ chứ không phải một dự án đầy đủ, nên không cần phải ở trong không gian làm việc để thực hiện điều này.
Từ thư mục chính, mở một trình soạn thảo văn bản dòng lệnh, ví dụ như nano, và tạo một tệp mới:
nano hello.go
Viết chương trình của bạn trong tệp mới:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
Đoạn mã này sử dụng gói fmt và gọi hàm Println với đối số là “Hello, World!”; khi chạy, chương trình sẽ in ra dòng chữ “Hello, World!” trên terminal.
Thoát khỏi nano bằng cách nhấn tổ hợp phím CTRL + X. Khi được hỏi có lưu tệp không, nhấn Y và sau đó ENTER.
Sau khi thoát nano và trở lại dòng lệnh, chạy chương trình:
go run hello.go
Chương trình hello.go sẽ in ra dòng chữ sau trên terminal:
Output
Hello, World!
Trong bước này, bạn đã sử dụng một chương trình cơ bản để xác minh rằng không gian làm việc Go của bạn đã được cấu hình đúng.
Kết luận
Chúc mừng! Tại thời điểm này, bạn đã thiết lập thành công không gian làm việc lập trình Go trên máy Ubuntu của mình và có thể bắt đầu các dự án lập trình.
Khi cài đặt Go và thiết lập môi trường, một máy chủ mạnh mẽ là yếu tố then chốt. Thuê VPS chất lượng cao với cấu hình linh hoạt giúp bạn triển khai dự án mượt mà. Tìm hiểu thêm về các dịch vụ VPS tối ưu cho lập trình viên tại đây!