Tổng quan
Lập trình viên CLI ưa chuộng Go vì tính di động, hiệu năng và dễ tạo
Giao diện dòng lệnh (CLI), khác với giao diện đồ họa (GUI), chỉ hoạt động trên văn bản. Các ứng dụng đám mây và hạ tầng chủ yếu dùng CLI nhờ khả năng tự động hóa và truy cập từ xa dễ dàng.
Lợi ích chính
Tận dụng thời gian biên dịch nhanh để xây dựng chương trình khởi động ngay và chạy trên mọi hệ thống
Các lập trình viên CLI nhận thấy Go rất lý tưởng để thiết kế ứng dụng. Go biên dịch rất nhanh thành một binary duy nhất, hoạt động nhất quán trên nhiều nền tảng và có cộng đồng phát triển mạnh. Từ một chiếc laptop Windows hay Mac, lập trình viên có thể build chương trình Go cho hàng chục kiến trúc và hệ điều hành mà Go hỗ trợ chỉ trong vài giây, không cần các build farm phức tạp. Không ngôn ngữ biên dịch nào khác có thể đóng gói di động và nhanh chóng như vậy. Ứng dụng Go được đóng gói thành một binary độc lập, giúp việc cài đặt trở nên cực kỳ đơn giản.
Cụ thể, các chương trình viết bằng Go chạy trên mọi hệ thống mà không cần thư viện, runtime hay dependency nào. Và các chương trình viết bằng Go có thời gian khởi động tức thì, tương đương C hay C++ nhưng không thể đạt được với các ngôn ngữ lập trình khác.
Trường hợp sử dụng
Dùng Go để xây dựng CLI tinh tế
Khi phát triển CLI bằng Go, hai công cụ được sử dụng rộng rãi là: Cobra và Viper.
Cobra vừa là thư viện để tạo các ứng dụng CLI hiện đại mạnh mẽ, vừa là chương trình để sinh ra ứng dụng và CLI trong Go. Cobra hỗ trợ hầu hết các ứng dụng Go phổ biến như CoreOS, Delve, Docker, Dropbox, Git Lfs, Hugo, Kubernetes và nhiều ứng dụng khác. Với tính năng hỗ trợ trợ giúp lệnh, tự động hoàn thành và tài liệu tích hợp, “[nó] giúp việc viết tài liệu cho từng lệnh trở nên thực sự đơn giản,” theo lời Alex Ellis, người sáng lập OpenFaaS.
Viper là giải pháp cấu hình toàn diện cho ứng dụng Go, được thiết kế để xử lý nhu cầu và định dạng cấu hình ngay trong ứng dụng. Cobra và Viper được thiết kế để hoạt động cùng nhau.
Viper hỗ trợ cấu trúc lồng nhau trong cấu hình, cho phép lập trình viên CLI quản lý cấu hình cho nhiều phần của ứng dụng lớn. Viper cũng cung cấp tất cả các công cụ cần thiết để dễ dàng xây dựng ứng dụng twelve-factor.
“Nếu bạn không muốn làm lộn xộn dòng lệnh, hoặc bạn đang làm việc với dữ liệu nhạy cảm mà bạn không muốn xuất hiện trong lịch sử, thì nên dùng biến môi trường. Để làm điều này, bạn có thể dùng Viper,” Geudens gợi ý.
Người dùng nổi bật
| Khách hàng | Giới thiệu ngắn | Dự án sử dụng Go |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bắt đầu
Sách Go dành cho việc tạo CLI
-
Powerful Command-Line Applications in Go
-
Go in Action
-
The Go Programming Language
-
Go Programming Blueprints
Thư viện CLI
-
spf13/cobra
Thư viện để tạo các ứng dụng CLI hiện đại mạnh mẽ và chương trình sinh ứng dụng CLI trong Go
-
spf13/viper
Giải pháp cấu hình toàn diện cho ứng dụng Go, xử lý nhu cầu và định dạng cấu hình ngay trong ứng dụng
-
urfave/cli
Framework tối giản để tạo và tổ chức ứng dụng dòng lệnh Go
-
delve
Công cụ đơn giản và mạnh mẽ cho lập trình viên dùng debugger cấp nguồn trong ngôn ngữ biên dịch
-
chzyer/readline
Triển khai Go thuần túy cung cấp hầu hết tính năng của GNU Readline (giấy phép MIT)
-
dixonwille/wmenu
Cấu trúc menu dễ sử dụng cho ứng dụng CLI để nhắc người dùng lựa chọn
-
spf13/pflag
Thay thế drop-in cho package flag của Go, triển khai cờ kiểu POSIX/GNU
-
golang/glog
Log thực thi phân cấp cho Go
-
go-prompt
Thư viện xây dựng prompt tương tác mạnh mẽ, giúp tạo công cụ dòng lệnh đa nền tảng dễ dàng hơn.