Sučelja naredbenog retka (CLI) i dalje su popularna čak i usprkos grafičkim korisničkim sučeljima (GUI) i njihovim interaktivnim vizualnim komponentama. CLI-ovi su još uvijek u upotrebi zbog svoje jednostavnosti, lakoće, brzine i manje resursa potrebnih za postavljanje CLI aplikacije.

Većina CLI aplikacija radi na terminalu operativnog sustava ili na naredbenom retku, povećavajući fleksibilnost bez potrebe za toliko resursa koliko GUI.

Možete izraditi CLI s popularnim jezicima od Pythona do C++, Rust i Go. Većina jezika nudi pakete za izgradnju CLI aplikacija bez vanjskih ovisnosti.

Go i aplikacije naredbenog retka

Jedan od predviđenih slučajeva upotrebe programskog jezika Go je izgradnja učinkovitih interaktivnih CLI-ova. Tijekom godina, Go je postao popularan na terenu.

Go pokreće popularne CLI aplikacije kao što su Docker CLI, Hugo, GitHub CLI i druge. Go je jedan od preferiranih jezika za izradu CLI aplikacija, s obzirom na njegovu prvoklasnu podršku za njih uz njegovu izvedbu.

Tamo je

zastava paket za raščlanjivanje naredbenog retka, ali mu nedostaje mnogo funkcionalnosti koje će vam trebati za izradu modernih aplikacija naredbenog retka. Također, razvoj CLI aplikacija s zastava paket može biti složen kako se veličina vaše aplikacije povećava i vi uključujete više značajki.

Go ekosustav ima mnogo renomiranih paketa za izgradnju CLI-ja, sa značajkama koje vam pomažu smanjiti vrijeme razvoja.

Cobra paket

Kobra je jedan od najpopularnijih paketa za izgradnju CLI-ja u Go ekosustavu i šire. Cobra je paket za stvaranje interaktivnih, modernih CLI aplikacija u bilo kojem okruženju.

Cobra pruža jednostavno sučelje za izgradnju CLI-ja industrijskog standarda sličnog Go alatima i Gitu. Cobra pokreće mnoge CLI aplikacije s kojima ste bili u interakciji, uključujući Docker, Kubernetes, Twitch, Hugo i niz drugih.

Cobra je alat koji se temelji na podnaredbama i jednostavan je za korištenje. Podržava oznake usklađene s POSIX-om, ugniježđene podnaredbe te globalne, lokalne i kaskadne oznake.

Cobra također podržava inteligentne prijedloge, automatsko generiranje pomoći, prepoznavanje zastavica i pseudonime naredbi. Omogućuje automatsko dovršavanje ljuske za Bash, Powershell, Fish i Zsh te integraciju s poskok paket za aplikacije s 12 faktora.

Pokrenite ovu naredbu u terminalu vašeg radnog direktorija da instalirate najnoviju verziju paketa Cobra i njegovih ovisnosti.

ići get -u github.com/spf13/cobra@latest

Cobra nudi CLI aplikaciju za brži i lakši razvoj. Paket Cobra—cli generira šablonski kod koji možete konfigurirati za dodavanje novih naredbi svojoj aplikaciji bez problema.

Pokrenite ovu naredbu u terminalu vašeg radnog direktorija da instalirate najnoviju verziju paketa Cobra-cli.

ići instalirajte github.com/spf13/cobra-cli@latest

Morat ćete postaviti svoju GOPATH varijablu na svoj radni direktorij da biste koristili Cobra generator (Cobra-cli) i druge Go alate naredbenog retka.

Nakon uspješne instalacije, možete inicijalizirati aplikaciju Cobra u svom projektu pomoću u tome naredba.

cobra-cli init

Nakon pokretanja Cobra aplikacije, možete koristiti dodati podnaredba s kobra-cli naredbu za stvaranje i dodavanje nove naredbe vašoj aplikaciji Cobra.

cobra-cli dodaj novu naredbu

Naredba stvara novu datoteku s kodom koji vam je potreban za naredbu. Možete urediti datoteku na temelju svoje operacije.

Evo jednostavne funkcije rukovatelja naredbama za naredbu generiranu naredbom Cobra-cli.

uvoz (
"fmt"
"github.com/spf13/cobra"
"log"
"strconv"
)

// kobra generirana naredba

// newCmd predstavlja novu naredbu
var noviCmd = &cobra. Naredba {
Koristite: "newCmd",
Kratko: "NewCmd opis koji navedete",
dugo: `Dulji opis koji se proteže u više redaka i vjerojatno sadrži primjere
i korištenje vaše naredbe. Na primjer:
Cobra je CLI biblioteka za Go koji osnažuje aplikacije.
Ova je aplikacija alat za generiranje potrebnih datoteka
za brzo kreiranje Cobra aplikacije.`,

Trčanje: funk(cmd *kobra. Naredba, argumenti []niz) {
akoleća(args) < 1 {
log. Fatal ("Bez dodatnih argumenata")
}
argumenti := argumenti[0]
fmt. Println (argumenti)
}
}

funku tome() {
rootCmd. AddCommand (newCmd)

// Ovdje ćete definirati svoje zastavice i konfiguracijske postavke.

// Cobra podržava trajne zastavice koje će raditi za ovu naredbu
// i sve podnaredbe, npr.:
// novaCmd. PersistentFlags().String("foo", "", "Pomoć za foo")

// Cobra podržava lokalne oznake koje će se pokrenuti samo kada je ova naredba
// poziva se izravno, npr.:
// novaCmd. Flags().BoolP("toggle", "t", false, "Poruka pomoći za prebacivanje")
}

Dodatnim argumentima možete pristupiti pomoću args argument funkcije. Gornja funkcija koristi ako naredbu za provjeru postoji li dodatni argument s terminala i ispisuje argument.

CLI paket

Cli paket je minimalistički paket s ekspresivnom temom za izradu brzih CLI aplikacija koje se mogu distribuirati u Go.

Cli paket podržava argumente naredbenog retka, zastavice i podnaredbe s kategorijama. Ima funkcionalnost za opskrbu kratkim opcijama, Bash dovršenja, generirana pomoć i verzija.

Paket Cli interoperabilan je s ugrađenim Go-om zastava i kontekst pakete, a možete koristiti većinu značajki u zastava paket s Cli.

Pokrenite ove naredbe u terminalu vašeg radnog direktorija da dodate paket Graphql-go i njegove ovisnosti u svoj projekt.

ići dobiti github.com/urfave/cli

Evo kako možete dodati naredbu svojoj CLI aplikaciji s Cli paketom.

paket glavni

uvoz (
"fmt"
"log"
"os"

"github.com/urfave/cli/v2"
)

funkglavni() {
aplikacija := &cli. Aplikacija {
Ime: "novi",
Upotreba: "napraviti a novi naredba s Cli paket",
Akcijski: funk(*cli. Kontekst)greška {
fmt. Println("Ovdje je novi naredba")
povrataknula
},
}

ako pogreška := pril. Trči (os. Args); pogriješiti != nula {
log. Fatalno (greška)
}
}

u glavni funkcija, aplikacija varijabla je instanca Cli aplikacije i aplikacije Akcijski polje je funkcija rukovatelja aplikacije. Evo, novi naredba bi ispisala tekst iz funkcije ili vratila pogrešku ako postoje pogreške iz aplikacije.

Cli paket je koristan za manje projekte bez puno složenosti ili značajki.

Go-Arg paket

Go-arg paket je paket temeljen na strukturi za raščlanjivanje CLI argumenata u Go. S Go-arg paketom možete deklarirati strukture za CLI argumente i raditi s argumentima kao s uobičajenim Go strukturama podataka. Paket Go-arg pruža potrebne argumente, pozicijske argumente, varijable okoline, nizove upotrebe, zadane vrijednosti i mnoge druge značajke.

Paket podržava osnovne tipove kao što su integer, floating point, string i boolean. Također podržava složenije vrste poput URL-ova, vremenskih trajanja, adresa e-pošte, MAC adrese, pokazivači, kriške, karte i bilo koji tip.

Možete koristiti dobiti naredba za dodavanje paketa Go-arg ovisnostima vašeg paketa.

ići dobiti github.com/alexflint/ići-arg

Go-arg paket je jednostavan i intuitivan za korištenje. Evo kako možete prihvatiti argumente iz naredbenog retka i ispisati ih na konzolu naredbenog retka.

funkglavni() {
var args strukturirati {
fuj niz
Bar bool
}
arg. MustParse(&args)
fmt. Println (args. Fuj, args. Bar)
}

The args struct je instanca struct za CLI aplikaciju. The MustParse metoda analizira argumente iz naredbenog retka u instancu strukture.

Možete jednostavno pokrenuti program s trčanje naredbu i navedite argumente iza naziva datoteke.

ići pokrenuti glavni.ići --foo=zdravo --bar

Također možete koristiti izgraditi naredbu za izgradnju vaše aplikacije u izvršnu datoteku prije pokretanja izvršne datoteke i navođenja argumenata.


ići izgraditi glavni.ići
./main --foo=hello --bar

Postoje značajne razlike između GUI-ja i CLI-ja koje ćete morati razmotriti

Tijekom razvoja, ako morate birati između izgradnje CLI-ja ili GUI-ja za svoje korisnike, morat ćete uzeti u obzir mnoge čimbenike da biste napravili izbor.

Korištenje CLI-ja umjesto GUI-ja rezultira bržim programima, jednostavnom automatizacijom i manjim korištenjem resursa. Ako bilo koja od tih prednosti nije presudna za vašu aplikaciju, možda bi vam bilo bolje s GUI jer su popularniji među općim korisnicima.