Golang tutorial 1: Giới thiệu và cài đặt Go Language

Getting Started Jan 11, 2020

Giới Thiệu:

Ok, cùng tìm hiểu sơ qua về Go hay còn gọi Golang. Một ngôn ngữ đang khá thịnh hành bây giờ, khi lần lượt các công ty lớn đang dần tuyển quân rầm rộ. mình sẽ không giới thiệu quá chi tiết về ngôn ngữ vì mình cũng vừa tìm hiểu thôi nên không biết chém cái gì. Quan trọng ngôn ngữ này đang thông dụng và lương cao nên mình tìm hiểu, mình không đam mê lập trình lắm nhưng mình đam mê tiền, mà hiện giờ thứ mình giỏi nhất chỉ có lập trình nên mình thích thì mình tìm hiểu ngôn ngữ nào đang bắt trend đấy được không =))))))) chấm.

Tài liệu về Go, mô tả Go là “một ngôn ngữ biên dịch nhanh, static type, compiled language (ngôn ngữ biên dịch), nhưng lại giống như một dynamic, interpreted language (ngôn ngữ thông dịch)”.

Không giống các ngôn ngữ kịch bản như Python, Go biên dịch (compile) code ra nhị phân một cách nhanh chóng. Và không giống như C hoặc C ++, Go biên dịch cực nhanh, nhanh đến mức khiến bạn cảm thấy khi làm việc với Go giống như là làm việc với một ngôn ngữ kịch bản hơn là một ngôn ngữ biên dịch. Hơn nữa, hệ thống Go build đơn giản hơn so với các ngôn ngữ biên soạn khác. Phải trải qua một vài bước và lập kế hoạch để xây dựng và vận hành một dự án Go.

Run nhị phân chậm hơn so với C, nhưng sự khác biệt về tốc độ này không đáng kể đối với hầu hết các ứng dụng. Hiệu suất của Go tốt ngang với C trong phần lớn công việc và nói chung là nhanh hơn so với các ngôn ngữ khác nổi tiếng về tốc độ (ví dụ: JavaScript, Python và Ruby).

Ờ biết tới đây thôi. Muốn rõ nó là cái gì thì bắt tay làm mới hiểu được chứ mấy cái giới thiệu mình copy trên mạng á =))))))

Cài Đặt:

À mình xài Mac nên bài này hướng dẫn cài đặt theo Mac thôi. Tại mình vừa tìm hiểu vừa viết mà không có thời thử trên các Hệ Điều Hành khác để viết cho các bạn đâu =)))))

Quá trình cài đặt rất dễ dàng. Đầu tiên, những gì bạn phải làm là chạy lệnh này để cài đặt homebrew (brew). Brew có sự phụ thuộc vào Xcode, vì vậy bạn nên đảm bảo cài đặt này trước:

xcode-select --install

Cài tiếp HomeBrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Giờ cài Go:

brew install go

Check xem cài thành công không:

go version

Ờ xong rồi á. mặc dù không hiểu lắm vì sao cài đặt dễ thế. Khuyến cáo là có thể trong lúc cài có thể co vấn đề gì đó và việc của bản là đọc hiểu message nó phun ra rồi làm theo, không hiểu tiếng anh thì copy rồi nhờ google dịch nhé, riêng mình cài nhẹ nhàng không vấn đề gì =))))))

Mặc định, tất cả  code Go sống và làm việc trong một không gian làm việc (thư mục). Thư mục có thể là bất cứ nơi nào trong máy của bạn. Nếu bạn không chỉ định, Go sẽ mặc định $ HOME/go làm thư mục làm việc mặc định. Thư mục làm việc được xác định (và sửa đổi) bởi biến môi trường GOPATH. Bạn nên đặt biến môi trường để bạn có thể sử dụng nó sau này trong tập lệnh, shell, v.v. Cập nhật .bash_profile của bạn để export nó:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Code của các bạn nên chia ra 3 thư mục: Tất cả code của các bạn trong src, các package trong pkg và các chương trình được biên dịch trong bin. Bạn có thể tạo các thư mục như sau:

mkdir -p $GOPATH/src $GOPATH/pkg $GOPATH/bin

Ok. let's go làm thử quả code huyền cmn thoại "Hello world" nào anh em. Trước tiên mình tạo 1 thư mục chứa code của mình nhé. Nhớ để code trong src:

mkdir -p $GOPATH/src/github.com/{username}/hello

Tạo 1 file hello.go viết vài đoạn code và chạy "go run hello.go":

Ok ở đây "main" là function chạy khi bạn run file. "func" dùng để khai báo function, hàm "Println" dùng để in ra màn hình tương tự "echo" hay "console.log()" bạn nào từng viết PHP hay Javascript sẽ biết mấy hàm này... Mà hàm  "Println" thì nằm trong package "fmt" nên mình phải import nó vào mới xài được. Đó đến đây thôi, nhìn vậy chứ cũng mệt vờ lờ ra ý.

Các bạn có câu hỏi hay đề xuất trao đổi cứ gửi mail cho mình qua email: tlvduc92@gmail.com còn về sourse code mình sẽ đưa lên github cho tiện các bạn xem nhé, nhớ đừng chửi mình, mình còn gà lắm =))))) Nhấn vào chữ github là ra nhé =))))