Biểu tượng của Golang |
Chắc hẳn đến thời điểm hiện tại, không ai là chưa nghe đến Go (hay còn gọi là Golang), một ngôn ngữ lập trình được phát triển nội bộ bởi Google vào năm 2007, và sau đó được công bố vào năm 2009.
Theo như Google, ngôn ngữ này được phát triển để giải quyết các vấn đề của Google.
Ấn tượng đầu tiên của mình khi tiếp cận với Golang đó là:
- Một ngôn ngữ gì mà lai căng Ruby, Python, Javascript, C-like loạn xà ngầu.
- Làm gì với nó đây? cảm giác của mình lúc đó giống như khi học Pascal, ngoài việc đem ra để giải các bài tập thuật toán ở trường ra, chả dùng nó được vào việc gì.
Go Để làm Gì?
- Những ứng dụng yêu cầu mở rộng rất lớn
- Yêu cầu tốc độ xử lý nhanh
- Hệ thống phân tán
- Hệ thống phần cứng nhiều lõi network computing để có thể giải quết tốt các vấn đều trên các nhà phát triển ngôn ngữ này đã thiết kế nên một loạt các tính năng tuyệt vời.
Đặc điểm ngôn ngữ Go
- Sự đơn giản - Less is more: không giống như những ngôn ngữ hiện đại Go không có khái nhiệm lớp, đối tương hay thừa kế, Go chỉ có một vài tính năng chủ yếu như hàm, interface, chanel, struct… với sự đơn giản đến khó tin của mình Go lại mạng trong mình sức mạnh không hề thua kém về tốc độ thực thi cũng cấu trức mạch lạc nhất là với các hệ thống lớn.
- Bộ công cụ built-in tuyệt vời: Song song cùng phát triển các tính năng ngôn ngữ các nhà phát triển Go cũng rất cong phu trong việc phát triển các bộ công cụ kèm theo như công cụ dòng lệnh Go comand với một loạt các tính năng: package manager, unit testing, application build…, Godoc công cụ viết document, Gofmt công cụ coding covention, Gofix công cụ tự đọng fix lỗi API của các phiên bản trước, và còn nhiều công cụ nữa giúp cho nhà phát triển dễ dàng nhất để tạo ra những sản phẩm có chất lượng tốt trong một thời gian ngắn.
- Biên dịch nhanh - thuần mã máy: Nếu như bạn đã sử dụng java hay C++ thì có lẽ công việc nhàm chán nhất chính là đợi chương trình dịch dành mã máy (hoặc bytecode) với go thời gian đó được rút ngắn đáng kể. Giống như C hay C++ chương trình Go dược dịch thẳng sang mã máy mà không cần chạy qua một máy ảo nào cả điều đó cũng có nghĩa tốc đọ tính toán được gia tăng.
garbage collector tốt
Một trong những thứ Go làm rất tốt đó chính là garbage collector, biểu đồ trên lấy từ GoerCon 2016 thể hệ độ hiệu uqar tuyệt vời của Go garbage collector. như biểu đồ trên thì garbage collector chỉ mất 10ms để thu hồi 100GB và 12ms để thu hồi 200GB Heap.
- Định kiểu chặt chẽ: Go là một ngôn ngữ yêu cầu rất cao với kiểu dữ liệu. ví dụ với kiểu số ta có int, int32, int64 nhìn chung thì việc này sẽ giúp cho giảm lỗi runtime nhưng đôi khi cũng hơi hoa mắt với những đoạn ép kiểu qua lại nhằng nhằng.
- Giao diện và bao gói: không giốp như OOP trong Go không có class đề bao gói, thay vào đó là package và struct. một loạt các biến hay hàm mà có tên viết hoa chữ cái đầu sẽ là public còn nếu không sẽ là thuộc tính private. ngoài ra Go cũng hỗ trợ tính đa hình bằng cách ử dụng interface, một struct có thể đồng thời niều interfaace khác nhau.
- Lập trình đồng thời: khá giống với thread trong java nhưng Concurrentcy trong Go rất dễ sử dụng và nhẹ nhàng hơn nhiều, cho phép xử lí các tác vụ đồng bộ với nhau. Go cung cấp hai cách đó là chanel và go.
Cài đặt môi trường phát triển Go
Mình khuyến khích các bạn sử dụng môi trường Unix như Linux hay Mac OS X cho việc dev. Mình không ghét Windows nhưng mà cài đặt môi trường dev trên win rất tốn thời gian và phiền phức (các bạn đã từng cài đặt môi trường Python hay Ruby chắc sẽ đồng ý).
Nếu không có điều kiện sử dụng các môi trường Unix, các bạn có thể dùng Docker hoặc Vagrant, sẽ tiện hơn là cài trực tiếp trên môi trường Windows.
Bước 1: Cài đặt Go runtime
Windows
Đối với các bạn dùng Windows, cài bằng bộ cài MSI sẽ tiện hơn, nó sẽ tự động config hết mọi thứ cần thiết.
Đầu tiên, tải bộ cài tại đây https://golang.org/dl và chạy file go<version>.windows-386.msi (32 bit) hoặc go<version>.windows-amd64.msi (64 bit), tuỳ vào hệ điều hành bạn đang sử dụng.
Linux và Mac OS X
Với các bạn xài môi trường Unix, chúng ta nên cài bằng dòng lệnh.
Chúng ta sẽ cài Go thông qua Homebrew (có thể bỏ qua nếu bạn đã cài trước rồi), khởi động Terminal lên và gõ:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Sau khi cài xong Homebrew, chúng ta bắt đầu cài Go với lệnh:
$ brew install go --cross-compile-common
Ngồi rung đùi vài phút
Mac OS X Installer
Trên Mac, nếu bạn không thích cài bằng dòng lệnh, có thể tải bộ cài từ trang chủ https://golang.org/dl/ và cài trực tiếp.
Go runtime sẽ được cài vào thư mục /usr/local/go và chúng ta cần setup biến môi trường (PATH) ở bước tiếp theo.
Bước 2: Cài đặt biến môi trường
Windows
Trên Windows, chúng ta sẽ cài đặt biến môi trường bằng cách click phải vào My Computer chọn Properties, chọn tab Advanced và click nút Environment Variables.
Nếu bạn cài đặt Go vào thư mục mặc định là C:\Go thì bạn cần cấu hình như sau:
Tạo một biến mới tên là GOROOT với giá trị là C:\Go
Chọn biến PATH có sẵn, thêm vào sau dấu chấm phẩy ; cuối dòng đường dẫn sau: C:\Go\bin;
Linux và Mac OS X
Trên các máy Unix, bạn cài đặt biến môi trường bằng cách chỉnh sửa file $HOME/.profile hoặc $HOME/.bash_profile.
Nếu không tìm thấy biến $HOME, có thể thay nó bằng /user/local
Hãy thêm nội dung sau:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
Thế là xong rồi đấy! Đơn giản, phải không nào?
Bước 3: Chạy thử
Bây giờ, chúng ta có thể kiểm tra xem Go đã được cài hoàn chỉnh hay chưa, bằng cách gõ lệnh sau vào Terminal (hoặc Command Line trên Windows):
$ go version
Nếu Go được cài đặt đầy đủ thì nội dung output sẽ giống thế này:
go version go1.4.2 darwin/amd64
Viết chương trình đầu tiên bằng Go
OK, cài đặt xong rồi thì bắt tay vào code thôi. Chương trình đầu tiên, chương trình huyền thoại mà bài nào cũng viết: Hello World
Chúng ta sẽ tạo một file mới, tên là hello.go và gõ đoạn chương trình sau vào. Nhưng hãy nhớ là: Gõ vào, đừng copy paste!. Phải tự gõ vào mới nhớ được!
package main
import "fmt"
func main() {
fmt.Printf("Hello World!")
}
Gõ xong rồi. Bạn có thấy code nó quái thế nào không?
Không có chấm phẩy cuối dòng, từ khoá func cứ như là Swift vậy, hao hao giống Javascript nữa. Còn cái gì nữa đây? fmt.Printf để in nội dung ra màn hình, có cần phải dài dòng vậy không?
Golang là thế đấy...
Bây giờ hãy compile và chạy chương trình với lệnh:
$ go run hello.go
Output sẽ là:
Hello World!
Xong rồi đó, chúc mừng, bạn đã viết được chương trình đầu tiên của mình bằng Go rồi đấy.
Không có nhận xét nào:
Đăng nhận xét