Antarmuka Baris Perintah (CLI) masih populer bahkan di hadapan Antarmuka Pengguna Grafis (GUI) dan komponen visual interaktifnya. CLI masih digunakan karena kesederhanaan, kemudahan, kecepatan, dan lebih sedikit sumber daya yang diperlukan untuk menyiapkan aplikasi CLI.
Sebagian besar aplikasi CLI berjalan di terminal atau baris perintah sistem operasi, meningkatkan fleksibilitas tanpa memerlukan sumber daya sebanyak GUI.
Anda dapat membuat CLI dengan bahasa populer dari Python hingga C++, Rust, dan Go. Sebagian besar bahasa menyediakan paket untuk membuat aplikasi CLI tanpa ketergantungan eksternal.
Buka dan Aplikasi Baris Perintah
Salah satu kasus penggunaan yang dimaksudkan untuk bahasa pemrograman Go adalah membangun CLI interaktif yang berkinerja tinggi. Selama bertahun-tahun, Go telah mendapatkan daya tarik di lapangan.
Go memberdayakan aplikasi CLI populer seperti Docker CLI, Hugo, GitHub CLI, dan banyak lagi. Go adalah salah satu bahasa pilihan untuk membuat aplikasi CLI, mengingat dukungan kelas satu untuk aplikasi tersebut di samping kinerjanya.
Ada bendera paket untuk parsing baris perintah, tetapi tidak memiliki banyak fungsi yang Anda perlukan untuk membuat aplikasi baris perintah modern. Juga, mengembangkan aplikasi CLI dengan bendera paket bisa menjadi rumit karena ukuran aplikasi Anda meningkat dan Anda memasukkan lebih banyak fitur.
Ekosistem Go memiliki banyak paket terkemuka untuk membangun CLI, dengan fitur untuk membantu mengurangi waktu pengembangan Anda.
Paket Kobra
Kobra adalah salah satu paket paling populer untuk membangun CLI di ekosistem Go dan seterusnya. Cobra adalah paket untuk membuat aplikasi CLI modern dan interaktif di lingkungan apa pun.
Cobra menyediakan antarmuka sederhana untuk membangun CLI standar industri yang mirip dengan alat Go dan Git. Cobra memberdayakan banyak aplikasi CLI yang pernah berinteraksi dengan Anda, termasuk Docker, Kubernetes, Twitch, Hugo, dan banyak lainnya.
Cobra adalah alat berbasis subperintah yang mudah digunakan. Ini mendukung flag yang sesuai dengan POSIX, subcommand bersarang, dan flag global, lokal, dan cascading.
Cobra juga mendukung saran cerdas, pembuatan bantuan otomatis, pengenalan bendera, dan alias perintah. Ini memungkinkan pelengkapan otomatis shell pada Bash, Powershell, Fish, dan Zsh, dan integrasi dengan ular berbisa paket untuk aplikasi 12 faktor.
Jalankan perintah ini di terminal direktori kerja Anda untuk menginstal versi terbaru paket Cobra dan dependensinya.
pergi dapatkan -u github.com/spf13/cobra@latest
Cobra menyediakan aplikasi CLI untuk pengembangan yang lebih cepat dan mudah. Paket Cobra—cli menghasilkan kode boilerplate yang dapat Anda konfigurasikan untuk menambahkan perintah baru ke aplikasi Anda tanpa kerepotan.
Jalankan perintah ini di terminal direktori kerja Anda untuk menginstal versi terbaru dari paket Cobra-cli.
pergi instal github.com/spf13/cobra-cli@latest
Anda harus menyetel variabel GOPATH ke direktori kerja untuk menggunakan generator Cobra (Cobra-cli) dan alat baris perintah Go lainnya.
Setelah penginstalan berhasil, Anda dapat menginisialisasi aplikasi Cobra di proyek Anda dengan init memerintah.
cobra-cli init
Setelah menginisialisasi aplikasi Cobra, Anda dapat menggunakan menambahkan subperintah dengan cobra-cli perintah untuk membuat dan menambahkan perintah baru ke aplikasi Cobra Anda.
cobra-cli tambahkan perintah baru
Perintah membuat file baru dengan kode yang Anda perlukan untuk perintah. Anda dapat mengedit file berdasarkan operasi Anda.
Berikut adalah fungsi penangan perintah sederhana untuk perintah yang dihasilkan dengan perintah Cobra-cli.
impor (
"fmt"
"github.com/spf13/cobra"
"catatan"
"strconv"
)// perintah yang dihasilkan kobra
// newCmd mewakili perintah baru
var cmd baru = &cobra. Memerintah {
Gunakan: "newCmd",
Singkat: "Deskripsi newCmd yang Anda tentukan",
Panjang: `Deskripsi yang lebih panjang yang mencakup banyak baris dan kemungkinan berisi contoh
dan penggunaan menggunakan perintah Anda. Misalnya:
Cobra adalah perpustakaan CLI untuk Go yang memberdayakan aplikasi.
Aplikasi ini adalah alat untuk menghasilkan file yang dibutuhkan
untuk membuat aplikasi Cobra dengan cepat.`,Berlari: fungsi(cmd *kobra. Perintah, argumen []rangkaian) {
jikalen(args) < 1 {
catatan. Fatal("Tidak Ada Argumen Tambahan")
}
argumen := args[0]
fmt. Println (argumen)
}
}fungsiinit() {
rootCmd. AddCommand (BaruCmd)// Di sini Anda akan menentukan flag dan pengaturan konfigurasi Anda.
// Cobra mendukung Persistent Flags yang akan berfungsi untuk perintah ini
// dan semua subperintah, mis.:
//Cmd baru. PersistentFlags().String("foo", "", "Bantuan untuk foo")
// Cobra mendukung flag lokal yang hanya akan berjalan saat perintah ini
// dipanggil langsung, misalnya:
//Cmd baru. Flags().BoolP("toggle", "t", false, "Pesan bantuan untuk toggle")
}
Anda dapat mengakses argumen tambahan dengan argumen argumen dari fungsi. Fungsi di atas menggunakan jika pernyataan untuk memeriksa apakah ada argumen tambahan dari terminal dan mencetak argumen.
Paket CLI
Paket Kli adalah paket minimalis bertema ekspresifitas untuk membuat aplikasi CLI yang cepat dan dapat didistribusikan di Go.
Paket Cli mendukung argumen baris perintah, bendera, dan subperintah dengan kategori. Ini memiliki fungsi untuk memenuhi opsi pendek, Penyelesaian bash, bantuan yang dihasilkan, dan pembuatan versi.
Paket Cli dapat dioperasikan dengan bawaan Go bendera Dan konteks paket, dan Anda dapat menggunakan sebagian besar fitur di bendera paket dengan Cli.
Jalankan perintah ini di terminal direktori kerja Anda untuk menambahkan paket Graphql-go dan dependensinya ke proyek Anda.
pergi dapatkan github.com/urfave/cli
Inilah cara Anda dapat menambahkan perintah ke aplikasi CLI Anda dengan paket Cli.
kemasan utama
impor (
"fmt"
"catatan"
"os""github.com/urfave/cli/v2"
)fungsiutama() {
aplikasi := &kl. Aplikasi {
Nama: "baru",
Penggunaan: "membuat A baru perintah dengan Cli kemasan",
Tindakan: fungsi(*kl. Konteks)kesalahan {
fmt. Println("Inilah a baru memerintah")
kembalinol
},
}
jika salah := aplikasi. Jalankan (mis. argumen); salah!= nol {
catatan. Fatal (salah)
}
}
Dalam utama fungsi, yang aplikasi variabel adalah turunan dari aplikasi Cli dan aplikasinya Tindakan field adalah fungsi penangan aplikasi. Di sini, baru perintah akan mencetak teks dari fungsi atau mengembalikan kesalahan jika ada kesalahan dari aplikasi.
Paket Cli berguna untuk proyek yang lebih kecil tanpa banyak kerumitan atau fitur.
Paket Go-Arg
Paket Go-arg adalah paket berbasis struct untuk mem-parsing argumen CLI di Go. Dengan paket Go-arg, Anda dapat mendeklarasikan struct untuk argumen CLI dan mengoperasikan argumen tersebut sebagai struktur data Go reguler. Paket Go-arg menyediakan argumen yang diperlukan, argumen posisi, variabel lingkungan, string penggunaan, nilai default, dan banyak fitur lainnya.
Paket ini mendukung tipe dasar seperti integer, floating point, string, dan boolean. Ini juga mendukung jenis yang lebih kompleks seperti URL, durasi waktu, alamat email, alamat MAC, pointer, irisan, peta, dan setiap jenis.
Anda dapat menggunakan mendapatkan perintah untuk menambahkan paket Go-arg ke dependensi paket Anda.
pergi dapatkan github.com/alexflint/pergi-arg
Paket Go-arg sederhana dan intuitif untuk digunakan. Inilah cara Anda dapat menerima argumen dari baris perintah dan mencetaknya ke konsol baris perintah.
fungsiutama() {
var argumen struct {
Foo rangkaian
Batang bool
}
arg. Harus Parse(&args)
fmt. Println (args. Foo, argumen. Batang)
}
Itu argumen struct adalah instance struct untuk aplikasi CLI. Itu Harus Parse metode mem-parsing argumen dari baris perintah ke instance struct.
Anda dapat dengan mudah menjalankan program dengan berlari perintah dan tentukan argumen setelah nama file.
pergi jalankan utama.pergi --foo=halo --bar
Anda juga dapat menggunakan membangun perintah untuk membuat aplikasi Anda menjadi executable sebelum menjalankan executable dan menentukan argumennya.
pergi membangun utama.pergi
./main --foo=halo --bar
Ada Perbedaan Signifikan Antara GUI dan CLI yang Perlu Anda Pertimbangkan
Selama pengembangan, jika Anda harus memilih antara membuat CLI atau GUI untuk pengguna, Anda harus mempertimbangkan banyak faktor untuk menentukan pilihan.
Menggunakan CLI melalui GUI menghasilkan program yang lebih cepat, otomatisasi yang mudah, dan pemanfaatan sumber daya yang lebih rendah. Jika salah satu keuntungan tersebut tidak penting untuk aplikasi Anda, Anda mungkin lebih baik menggunakan GUI karena lebih populer dengan pengguna umum.