Go Fundamentals: Tại sao bạn nên học Go?
Go là ngôn ngữ được trả lương cao nhất năm 2024. Nhưng liệu đó có phải là lý do duy nhất để học Go?
Đây là bài viết nằm trong series Go Fundamentals. Bài viết này sẽ giới thiệu tổng quan về ngôn ngữ lập trình Go, các ưu điểm của nó, lý do tại sao nhiều công ty lớn lại sử dụng Go. Chúng ta cũng sẽ tìm hiểu về cách cài đặt Go trên MacOS, Linux, và Windows.
Giới thiệu
Go (hay Golang) là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google, ra mắt vào năm 2009.
Go được thiết kế để trở thành một ngôn ngữ lập trình đơn giản, hiệu quả và dễ bảo trì. Go nổi bật với khả năng xử lý đồng thời mạnh mẽ (concurrency), hiệu suất cao, và tốc độ biên dịch nhanh. Ngoài ra, Go còn được ưa chuộng nhờ trình quản lý bộ nhớ tự động, công cụ hỗ trợ tốt, và cộng đồng phát triển mạnh mẽ.
Go thường được sử dụng để xây dựng các hệ thống backend yêu cầu khả năng xử lý đồng thời, hiệu suất, và tính mở rộng cao. Go rất phù hợp cho việc xây dựng các hệ thống phân tán trên môi trường cloud, cần tối ưu hóa tài nguyên. Go đang ngày càng trở thành lựa chọn phổ biến cho các dự án mới trong tương lai.
Ưu điểm
Go là một ngôn ngữ đơn giản
Go được thiết kế để hướng tới sự đơn giản, dễ đọc, dễ hiểu, và dễ bảo trì. Vì vậy, cú pháp của Go khá đơn giản, tinh gọn.
Go không có các tính năng không thật sự cần thiết. Go không có implicit conversion và không có kế thừa (composition over inheritance) làm cho code của bạn trở nên dễ hiểu hơn rất nhiều.
Go luôn nỗ lực hỗ trợ backward compatible. Các kiến thức bạn học được hôm nay vẫn có thể sử dụng được trong tương lai ngay cả khi các phiên bản mới hơn của Go ra đời.
Hiệu năng tốt, hỗ trợ concurrency
Go được thiết kế để hỗ trợ các tác vụ đồng thời (concurrency) một cách tốt nhất với goroutine, channel. Concurrency sẽ được đề cập đến một cách chi tiết trong các phần sau của series.
Go còn được thiết kế để tận dụng các tiến bộ của phần cứng hiện đại, ví dụ như tận dụng các CPU đa lõi, tối ưu hóa quản lý bộ nhớ, I/O.
Hỗ trợ tốt cho lập trình viên (DX)
Go có các công cụ hỗ trợ mạnh mẽ giúp cho trải nghiệm viết code của lập trình viên trở nên tốt hơn. Các công cụ thường được sử dụng:
gofmt: tự động định dạng source code với tabs và khoảng trắng
vet: phân tích source code và báo cáo các đoạn code khả nghi, có thể xác định các lỗi mà trình biên dịch không bắt được
staticcheck: là một công cụ phân tích mã nguồn giúp phát hiện và khắc phục các vấn đề tiềm ẩn trong mã nguồn như các vấn đề về định dạng, hiệu năng, logic, resource, concurrency,….
Ngoài lập trình các ứng dụng backend, Go còn có thể được dùng để viết các ứng dụng command-line, desktop, mobile, blockchain, devops.
Thời gian biên dịch nhanh
Một trong nhân nguyên nhân mà Rob Bike quyết tâm tạo ra Go là khi làm việc tại Google, ông phải làm việc với những dự án có mã nguồn khổng lồ, một số chương trình mất đến 30-45 phút để biên dịch. Điều này làm giảm hiệu suất làm việc và gây nhiều sự bất tiện. Vì vậy, ngay từ đầu Go được thiết kế để có thời gian build nhanh chóng, ngay cả với các codebase lớn.
Hỗ trợ tốt cho điện toán đám mây
Điện toán đám mây (cloud) là một xu hướng lớn trong ngành phần mềm. Go hỗ trợ tốt cho các ứng dụng trên cloud nhờ được thiết kế để tối ưu hiệu suất và dễ mở rộng.
Go hỗ trợ static linking. Toàn bộ Go project có thể được biên dịch thành một file binary duy nhất và được triển khai lên các cloud server một cách dễ dàng mà không cần phải lo lắng về các dependency.
Được phát triển bởi Google
Go được phát triển bởi Google, một tập đoàn công nghệ hàng đầu. Những người thiết kế nên Go cũng là các lập trình viên kỳ cựu và nổi tiếng trong ngành như:
Rob Pike, ông từng làm việc ở Bell Labs
Ken Thompson, ông là người thiết kế phiên bản đầu tiên của hện điều hành Unix
Robert Griesemer, ông từng tham gia team thiết kế Javascript Engine V8
Mức lương cao
Theo Báo Cáo Lương & Thị Trường Tuyển Dụng IT 2024-2025 của ITViec, Go chính thức vươn lên trở thành ngôn ngữ lập trình được trả lương cao nhất tại Việt Nam!
Các công ty lớn sử dụng Go
Go đã lọt vào top 10 ngôn ngữ phổ biến nhất theo Tiobe index và đang ngày một thịnh hành hơn. Các công ty lớn đang dùng Go: Google, Uber, Grab, Netflix, Dropbox, Soundcloud, Twitch.
Các dự án nổi tiếng có sử dụng Go: Docker, Kubernetes, Teraform, Dropbox.
Định hướng tương lai của Go team
Trong bài viết của Go team nhân dịp kỷ niệm 15 năm có đề cập đến định hướng phát triển của Go team trong tương lai:
Luôn cam kết giữ cho ngôn ngữ này ổn định, an toàn, và tối ưu cho việc phát triển phần mềm ở quy mô lớn.
Tận dụng tốt hơn năng lực của các phần cứng hiện tại và tương lai để có thể hỗ trợ các ứng dụng high-performance và large-scale trong 15 năm tới. Một số nỗ lực có thể kể đến như implement lại map hay thiết kế lại các thuật toán garbage collection.
Phát triển ngôn ngữ để hỗ trợ tốt hơn cho các ứng dụng AI, cũng như tận dụng AI để cải thiện hiệu suất của lập trình viên.
Cải tiến bảo mật với những nâng cấp trong mã hóa và thư viện chuẩn.
Cài đặt
MacOS
Bạn có thể tải về bản cài đặt cho MacOS tại đường dẫn https://go.dev/dl/ (đuôi pkg). Double click vào file cài đặt và làm theo hướng dẫn. Go sẽ được cài đặt tại đường dẫn /usr/local/go và thư mục /usr/local/go/bin cũng sẽ được thêm vào biến môi trường PATH.
Lưu ý:
Với MacOS, Go có 2 bản cài đặt dành riêng cho chip ARM và Intel. Bạn cần tải về đúng phiên bản dành cho máy của mình.
Linux
Tải về bản cài đặt cho Linux tại đường dẫn https://go.dev/dl/ (đuôi tar.gz).
Gỡ bỏ các bản cài đặt trước đó bằng cách xóa thư mục
/usr/local/go(nếu có)$ rm -rf /usr/local/goGiải nén file cài đặt mà bạn vừa download vào thư mục
/usr/local:$ tar -C /usr/local -xzf go1.23.1.linux-amd64.tar.gzLưu ý:
Bạn phải ở cùng thư mục chứa file cài đặt khi chạy lệnh trên.
Trong bài, file cài đặt có tên là
go1.23.1.linux-amd64.tar.gz. Khi Go ra version mới thì file cài đặt sẽ có tên khác.
Thên đường dẫn
/usr/local/go/binvào biến môi trườngPATHbằng cách thêm dòng sau vào file$HOME/.profilehoặc file/etc/profile:export PATH=$PATH:/usr/local/go/bin
Windows
Bạn có thể tải về bản cài đặt cho Windows tại đường dẫn https://go.dev/dl/ (đuôi msi). Double click vào file cài đặt và làm theo hướng dẫn. Go sẽ được cài đặt tại đường dẫn c:\Go và thư mục c:\Go\bin cũng sẽ được thêm vào biến môi trường PATH.
Kiểm tra sau khi cài đặt
Để kiểm tra xem Go đã được cài đặt thành công chưa, bạn có thể mở giao diện terminal (với Windows bạn cần mở cmd) và gõ lệnh go version. Nếu kết quả in ra phiên bản đã được cài đặt có nghĩa là bạn đã thành công.
Lưu ý: Bạn có thể cần phải mở một terminal mới để các thay đổi trên được apply.
$ go version
go version go1.23.1 darwin/amd64Go Playground
Bạn có thể bắt đầu ngay với Go Playground mà không cần phải cài đặt Go trên máy. Truy cập Go Playground tại https://go.dev/play/
Tóm tắt
Bài viết này đã giới thiệu tổng quan về ngôn ngữ lập trình Go, một ngôn ngữ được phát triển bởi Google, có cú pháp đơn giản, hiệu năng cao, hỗ trợ concurrency, hỗ trợ tốt cho lập trình viên, thời gian biên dịch nhanh, và tối ưu cho cloud.
Bài viết cũng hướng dẫn cách cài đặt Go trên các nền tảng phổ biến như MacOS, Linux và Windows, giúp bạn nhanh chóng bắt đầu với ngôn ngữ này. Go Playground cũng là một giải pháp tiếp cận nhanh dành cho người mới.
Với sự đơn giản, hiệu quả và tính ứng dụng cao, Go không chỉ là một công cụ mạnh mẽ cho các lập trình viên và là một lựa chọn chiến lược để phát triển các hệ thống phần mềm hiện đại trong tương lai.
Trong các bài viết tiếp theo của series Go Fundamentals, chúng ta sẽ khám phá sâu hơn về các khía cạnh kỹ thuật và cách tận dụng tối đa sức mạnh của Go.
Phòng GYM
Phòng GYM là nơi để bạn có thể ôn luyện các kiến thức được đề cập trong bài. Nghiên cứu chỉ ra rằng việc ôn tập và thực hành thường xuyên sẽ giúp học sâu và ghi nhớ kiến thức lâu hơn.
Hãy nêu các ưu điểm của ngôn ngữ lập trình Go.
Cài đặt Go trên máy tính cá nhân.



