Vmesniki ukazne vrstice (CLI) so še vedno priljubljeni kljub grafičnim uporabniškim vmesnikom (GUI) in njihovim interaktivnim vizualnim komponentam. CLI so še vedno v uporabi zaradi svoje preprostosti, enostavnosti, hitrosti in manj virov, potrebnih za nastavitev aplikacije CLI.

Večina aplikacij CLI se izvaja na terminalu ali ukazni vrstici operacijskega sistema, s čimer se poveča prilagodljivost, ne da bi zahtevali toliko virov kot GUI.

CLI-je lahko sestavite s priljubljenimi jeziki od Pythona do C++, Rust in Go. Večina jezikov ponuja pakete za izdelavo aplikacij CLI brez zunanjih odvisnosti.

Go in aplikacije ukazne vrstice

Eden od predvidenih primerov uporabe programskega jezika Go je izgradnja zmogljivih interaktivnih CLI-jev. Z leti je Go pridobil oprijem na tem področju.

Go poganja priljubljene aplikacije CLI, kot so Docker CLI, Hugo, GitHub CLI in druge. Go je eden od prednostnih jezikov za gradnjo aplikacij CLI, glede na njegovo prvovrstno podporo zanje poleg njegove zmogljivosti.

Tam je

instagram viewer
zastava paket za razčlenjevanje ukazne vrstice, vendar mu manjka veliko funkcionalnosti, ki jih boste potrebovali za izdelavo sodobnih aplikacij ukazne vrstice. Tudi razvoj aplikacij CLI z zastava paket je lahko zapleten, saj se velikost vaše aplikacije poveča in vključite več funkcij.

Ekosistem Go ima veliko uglednih paketov za izdelavo CLI-jev s funkcijami, ki vam pomagajo skrajšati čas razvoja.

Paket Cobra

Cobra je eden najbolj priljubljenih paketov za gradnjo CLI-jev v ekosistemu Go in širše. Cobra je paket za ustvarjanje interaktivnih, sodobnih aplikacij CLI v katerem koli okolju.

Cobra ponuja preprost vmesnik za gradnjo CLI-jev industrijskih standardov, podobnih orodjem Go in Git. Cobra poganja številne aplikacije CLI, s katerimi ste sodelovali, vključno z Dockerjem, Kubernetesom, Twitchom, Hugom in številnimi drugimi.

Cobra je orodje, ki je preprosto za uporabo in temelji na podukazih. Podpira zastavice, skladne s POSIX, ugnezdene podukaze ter globalne, lokalne in kaskadne zastavice.

Cobra podpira tudi inteligentne predloge, samodejno ustvarjanje pomoči, prepoznavanje zastavic in vzdevke ukazov. Omogoča samodokončanje lupine na Bash, Powershell, Fish in Zsh ter integracijo z viper paket za 12-faktorske aplikacije.

Zaženite ta ukaz v terminalu vašega delovnega imenika, da namestite najnovejšo različico paketa Cobra in njegovih odvisnosti.

pojdi get -u github.com/spf13/cobra@latest

Cobra ponuja aplikacijo CLI za hitrejši in lažji razvoj. Paket Cobra—cli ustvari okvirno kodo, ki jo lahko konfigurirate za dodajanje novih ukazov svoji aplikaciji brez težav.

Zaženite ta ukaz v terminalu vašega delovnega imenika, da namestite najnovejšo različico paketa Cobra-cli.

pojdi namestite github.com/spf13/cobra-cli@latest

Za uporabo generatorja Cobra (Cobra-cli) in drugih orodij ukazne vrstice Go boste morali nastaviti svojo spremenljivko GOPATH na svoj delovni imenik.

Po uspešni namestitvi lahko inicializirate aplikacijo Cobra v svojem projektu z v ukaz.

cobra-cli začet

Po inicializaciji aplikacije Cobra lahko uporabite dodati podukaz z cobra-cli ustvarite in dodate nov ukaz v aplikacijo Cobra.

cobra-cli dodaj nov ukaz

Ukaz ustvari novo datoteko s kodo, ki jo potrebujete za ukaz. Datoteko lahko uredite glede na vašo operacijo.

Tukaj je preprosta funkcija obdelovalnika ukazov za ukaz, ustvarjen z ukazom Cobra-cli.

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

// ukaz, ki ga ustvari cobra

// newCmd predstavlja nov ukaz
var newCmd = &cobra. Ukaz {
Uporabite: "newCmd",
Kratko: "Opis newCmd, ki ga določite",
Dolga: `Daljši opis, ki obsega več vrstic in verjetno vsebuje primere
in uporaba uporabe vašega ukaza. Na primer:
Cobra je knjižnica CLI za Go, ki omogoča aplikacije.
Ta aplikacija je orodje za ustvarjanje potrebnih datotek
za hitro ustvarjanje aplikacije Cobra.`,

Teči: funk(cmd *cobra. Ukaz, argumenti []vrvica) {
čelen(args) < 1 {
dnevnik. Usodno ("Brez dodatnih argumentov")
}
argumenti := argumenti[0]
fmt. Println (argumenti)
}
}

funkv() {
rootCmd. AddCommand (newCmd)

// Tukaj boste določili svoje zastavice in konfiguracijske nastavitve.

// Cobra podpira obstojne zastavice, ki bodo delovale za ta ukaz
// in vsi podukazi, npr.:
// novCmd. PersistentFlags().String("foo", "", "Pomoč za foo")

// Cobra podpira lokalne zastavice, ki se bodo zagnale le ob tem ukazu
// se kliče neposredno, npr.:
// novCmd. Flags().BoolP("preklop", "t", false, "Sporočilo pomoči za preklop")
}

Do dodatnih argumentov lahko dostopate z args argument funkcije. Zgornja funkcija uporablja če stavek, da preveri, ali obstaja dodaten argument iz terminala, in natisne argument.

Paket CLI

Paket Cli je minimalističen paket z izraznostjo za gradnjo hitrih aplikacij CLI, ki jih je mogoče distribuirati v Go.

Paket Cli podpira argumente ukazne vrstice, zastavice in podukaze s kategorijami. Ima funkcionalnost za kratke možnosti, Bash dokončanja, ustvarjena pomoč in različice.

Paket Cli je interoperabilen z vgrajenim paketom Go zastava in kontekstu pakete in lahko uporabljate večino funkcij v zastava paket s Cli.

Zaženite te ukaze v terminalu vašega delovnega imenika, da svojemu projektu dodate paket Graphql-go in njegove odvisnosti.

pojdi dobite github.com/urfave/cli

Tukaj je opisano, kako lahko dodate ukaz svoji aplikaciji CLI s paketom Cli.

paket glavni

uvoz (
"fmt"
"dnevnik"
"os"

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

funkglavni() {
app := &cli. Aplikacija {
Ime: "novo",
Uporaba: "narediti a novo ukaz s Cli paket",
Akcija: funk(*cli. kontekst)napaka {
fmt. Println("Tu je a novo ukaz")
vrnitevnič
},
}

če napaka := app. Teči (os. Args); napaka!= nič {
dnevnik. Usodno (napaka)
}
}

V glavni funkcija, aplikacija spremenljivka je primerek aplikacije Cli in aplikacije Akcija polje je funkcija upravljalnika aplikacije. Tukaj, novo ukaz bi natisnil besedilo iz funkcije ali vrnil napako, če bi prišlo do napak iz aplikacije.

Paket Cli je koristen za manjše projekte brez večje zapletenosti ali funkcij.

Paket Go-Arg

Paket Go-arg je na strukturi temelječ paket za razčlenjevanje argumentov CLI v Go. S paketom Go-arg lahko deklarirate strukture za argumente CLI in z argumenti delujete kot z običajnimi podatkovnimi strukturami Go. Paket Go-arg nudi zahtevane argumente, pozicijske argumente, spremenljivke okolja, nize uporabe, privzete vrednosti in številne druge funkcije.

Paket podpira osnovne vrste, kot so celo število, plavajoča vejica, niz in logična vrednost. Podpira tudi bolj zapletene vrste, kot so URL-ji, časovna trajanja, e-poštni naslovi, MAC naslovi, kazalci, rezine, zemljevidi in kaj vrsta.

Lahko uporabite dobiti ukaz za dodajanje paketa Go-arg v odvisnosti vašega paketa.

pojdi pridobi github.com/alexflint/pojdi-arg

Paket Go-arg je preprost in intuitiven za uporabo. Tukaj je opisano, kako lahko sprejmete argumente iz ukazne vrstice in jih natisnete v konzolo ukazne vrstice.

funkglavni() {
var args struct {
Foo vrvica
Bar bool
}
arg. MustParse(&args)
fmt. Println (args. Fuj, argumenti. Bar)
}

The args struct je primerek struct za aplikacijo CLI. The MustParse metoda razčleni argumente iz ukazne vrstice v primerek struct.

Program lahko enostavno zaženete z teči in podajte argumente za imenom datoteke.

pojdi teči glavno.pojdi --foo=zdravo --bar

Uporabite lahko tudi graditi ukaz za vgradnjo vaše aplikacije v izvršljivo datoteko, preden zaženete izvršljivo datoteko in podate argumente.


pojdi zgraditi glavno.pojdi
./main --foo=hello --bar

Obstajajo velike razlike med GUI in CLI, ki jih boste morali upoštevati

Če boste med razvojem morali izbirati med gradnjo CLI ali GUI za svoje uporabnike, boste morali pri izbiri upoštevati številne dejavnike.

Uporaba CLI namesto GUI ima za posledico hitrejše programe, enostavno avtomatizacijo in manjšo porabo virov. Če katera od teh prednosti ni bistvenega pomena za vašo aplikacijo, vam bo morda bolje uporabiti GUI, saj so bolj priljubljeni pri splošnih uporabnikih.