Command Line Interfacet (CLI) ovat edelleen suosittuja jopa graafisten käyttöliittymien (GUI) ja niiden interaktiivisten visuaalisten komponenttien edessä. CLI: t ovat edelleen käytössä niiden yksinkertaisuuden, helppouden, nopeuden ja CLI-sovelluksen määrittämiseen tarvittavien resurssien vähenemisen vuoksi.

Useimmat CLI-sovellukset toimivat käyttöjärjestelmän päätteellä tai komentorivillä, mikä lisää joustavuutta vaatimatta yhtä paljon resursseja kuin GUI: t.

Voit rakentaa CLI: itä suosituilla kielillä Pythonista C++:aan, Rustiin ja Goon. Useimmat kielet tarjoavat paketteja CLI-sovellusten rakentamiseen ilman ulkoisia riippuvuuksia.

Mene ja komentorivisovellukset

Yksi Go-ohjelmointikielen suunnitelluista käyttötapauksista on tehokkaiden interaktiivisten CLI: iden rakentaminen. Vuosien varrella Go on saanut pitoa alalla.

Go tehostaa suosittuja CLI-sovelluksia, kuten Docker CLI, Hugo, GitHub CLI ja paljon muuta. Go on yksi suosituimmista kielistä CLI-sovellusten rakentamiseen, koska sen ensiluokkainen tuki niille on suorituskyvyn lisäksi.

Siellä lippu paketti komentorivijäsentämiseen, mutta siitä puuttuu paljon toimintoja, joita tarvitset nykyaikaisten komentorivisovellusten rakentamiseen. Myös CLI-sovellusten kehittäminen lippu paketti voi olla monimutkainen, kun sovelluksesi koko kasvaa ja lisäät ominaisuuksia.

Go-ekosysteemissä on monia hyvämaineisia paketteja CLI: iden rakentamiseen, ja ominaisuuksia, jotka auttavat lyhentämään kehitysaikaasi.

Kobra-paketti

Kobra on yksi suosituimmista paketeista CLI: iden rakentamiseen Go-ekosysteemissä ja sen ulkopuolella. Cobra on paketti interaktiivisten, nykyaikaisten CLI-sovellusten luomiseen missä tahansa ympäristössä.

Cobra tarjoaa yksinkertaisen käyttöliittymän Go Toolsin ja Gitin kaltaisten alan standardien CLI: ien rakentamiseen. Cobra toimii monissa CLI-sovelluksissa, joiden kanssa olet ollut vuorovaikutuksessa, mukaan lukien Docker, Kubernetes, Twitch, Hugo ja monet muut.

Cobra on helppokäyttöinen, alikomentoihin perustuva työkalu. Se tukee POSIX-yhteensopivia lippuja, sisäkkäisiä alikomentoja ja globaaleja, paikallisia ja peräkkäisiä lippuja.

Cobra tukee myös älykkäitä ehdotuksia, automaattista ohjeiden luomista, lippujen tunnistusta ja komentoaliaksia. Se mahdollistaa komentotulkkien automaattisen täydennyksen Bashissa, Powershellissä, Fishissä ja Zshissa sekä integroinnin kyykäärme paketti 12-faktorisille sovelluksille.

Suorita tämä komento työhakemistosi päätteessä asentaaksesi Cobra-paketin ja sen riippuvuuksien uusimman version.

mennä get -u github.com/spf13/cobra@latest

Cobra tarjoaa CLI-sovelluksen nopeampaa ja helpompaa kehitystä varten. Cobra-cli-paketti luo mallikoodin, jonka voit määrittää lisäämään sovellukseesi uusia komentoja ilman ongelmia.

Suorita tämä komento työhakemistosi päätteessä asentaaksesi Cobra-cli-paketin uusimman version.

mennä asenna github.com/spf13/cobra-cli@latest

Sinun on asetettava GOPATH-muuttuja työhakemistoosi, jotta voit käyttää Cobra-generaattoria (Cobra-cli) ja muita Go-komentorivityökaluja.

Onnistuneen asennuksen jälkeen voit alustaa Cobra-sovelluksen projektissasi sen sisällä komento.

kobra-cli init

Kun olet alustanut Cobra-sovelluksen, voit käyttää lisätä alikomennon kanssa kobra-cli -komento luodaksesi ja lisätäksesi uuden komennon Cobra-sovellukseesi.

cobra-cli lisää uusi komento

Komento luo uuden tiedoston, jossa on komentoon tarvitsemasi koodi. Voit muokata tiedostoa toimintasi perusteella.

Tässä on yksinkertainen komentokäsittelytoiminto komennolla, joka on luotu Cobra-cli-komennolla.

tuonti (
"fmt"
"github.com/spf13/cobra"
"Hirsi"
"strconv"
)

// kobran luoma komento

// newCmd edustaa uutta komentoa
var newCmd = &kobra. Komento {
Käytä: "newCmd",
Lyhyt: "Määrittämäsi newCmd-kuvaus",
Pitkä: "Pidempi kuvaus, joka kattaa useita rivejä ja sisältää todennäköisesti esimerkkejä
ja komentosi käyttö. Esimerkiksi:
Cobra on CLI-kirjasto varten Mene, joka tehostaa sovelluksia.
Tämä sovellus on työkalu tarvittavien tiedostojen luomiseen
luodaksesi nopeasti Cobra-sovelluksen.`,

Juosta: func(cmd *kobra. Komento, args []merkkijono) {
joslen(args) < 1 {
Hirsi. Fatal ("Ei lisäargumentteja")
}
argumentit := args[0]
fmt. Println (argumentit)
}
}

funcsen sisällä() {
rootCmd. AddCommand (newCmd)

// Täällä määrität lippusi ja kokoonpanoasetukset.

// Cobra tukee pysyviä lippuja, jotka toimivat tässä komennossa
// ja kaikki alikomennot, esim.:
// newCmd. PersistentFlags().String("foo", "", "Apua foo")

// Cobra tukee paikallisia lippuja, jotka suoritetaan vain, kun tämä komento
// kutsutaan suoraan, esim.:
// newCmd. Flags().BoolP("toggle", "t", false, "apuviesti vaihtamiseen")
}

Voit käyttää lisäargumentteja komennolla args funktion argumentti. Yllä oleva toiminto käyttää jos lauseke tarkistaakseen, onko päätteestä lisäargumenttia, ja tulostaa argumentin.

CLI-paketti

Cli-paketti on ilmeikkäteemainen minimalistinen paketti nopeiden, jaettavien CLI-sovellusten rakentamiseen Gossa.

Cli-paketti tukee komentorivin argumentteja, lippuja ja alikomentoja luokkien kanssa. Siinä on toimintoja, jotka mahdollistavat lyhyitä vaihtoehtoja, Bash täydennykset, luotu ohje ja versiointi.

Cli-paketti on yhteentoimiva Go: n sisäänrakennetun kanssa lippu ja yhteydessä paketteja, ja voit käyttää useimpia ominaisuuksia lippu paketti Cli: n kanssa.

Suorita nämä komennot työhakemistosi päätteessä lisätäksesi Graphql-go-paketin ja sen riippuvuudet projektiisi.

mennä hanki github.com/urfave/cli

Näin voit lisätä komennon CLI-sovellukseesi Cli-paketin avulla.

paketti pää

tuonti (
"fmt"
"Hirsi"
"os"

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

funcpää() {
sovellus := &cli. Sovellus {
Nimi: "Uusi",
Käyttö: "tehdä a Uusi komento Cli: llä paketti",
Toiminta: func(*kli. konteksti)virhe {
fmt. Println("Tässä on a Uusi komento")
palatanolla
},
}

jos virhe := sovellus. Suorita (os. Args); virhe! = nolla {
Hirsi. Kohtalokas (err)
}
}

Vuonna pää toiminto, sovellus muuttuja on Cli-sovelluksen ja sovelluksen esiintymä Toiminta kenttä on sovelluksen käsittelijätoiminto. Tässä, Uusi komento tulostaa tekstin funktiosta tai palauttaa virheilmoituksen, jos sovelluksesta tulee virheitä.

Cli-paketti on hyödyllinen pienempiin projekteihin ilman paljon monimutkaisuutta tai ominaisuuksia.

Go-Arg-paketti

Go-arg-paketti on struct-pohjainen paketti CLI-argumenttien jäsentämiseen Gossa. Go-arg-paketin avulla voit ilmoittaa rakenteita CLI-argumenteille ja käyttää argumentteja tavallisina Go-tietorakenteina. Go-arg-paketti sisältää vaaditut argumentit, sijaintiargumentit, ympäristömuuttujat, käyttömerkkijonot, oletusarvot ja monia muita ominaisuuksia.

Paketti tukee perustyyppejä, kuten kokonaisluku, liukuluku, merkkijono ja boolean. Se tukee myös monimutkaisempia tyyppejä, kuten URL-osoitteita, kestoja, sähköpostiosoitteita, MAC-osoitteet, osoittimia, osia, karttoja ja minkä tahansa tyyppi.

Voit käyttää saada komento lisätäksesi Go-arg-paketin paketin riippuvuuksiin.

mennä hanki github.com/alexflint/mennä-arg

Go-arg-paketti on yksinkertainen ja intuitiivinen käyttää. Näin voit hyväksyä argumentteja komentoriviltä ja tulostaa ne komentorivikonsoliin.

funcpää() {
var args struct {
Foo merkkijono
Baari bool
}
arg. MustParse (&argumentit)
fmt. Println (args. Foo, args. Baari)
}

The args struct on CLI-sovelluksen struct-ilmentymä. The Täytyy jäsentää menetelmä jäsentää argumentit komentoriviltä struct-ilmentymään.

Voit suorittaa ohjelman helposti käyttämällä juosta komento ja määritä argumentit tiedostonimen jälkeen.

mennä ajaa pää.mennä --foo=hello --bar

Voit myös käyttää rakentaa komento rakentaaksesi sovelluksestasi suoritettavan tiedoston ennen suoritustiedoston suorittamista ja argumenttien määrittämistä.


mennä rakentaa pää.mennä
./main --foo=hello --bar

GUI: iden ja CLI: iden välillä on merkittäviä eroja, jotka sinun on otettava huomioon

Jos sinun on valittava kehittämisen aikana CLI: n tai GUI: n rakentaminen käyttäjillesi, sinun on otettava huomioon monia tekijöitä valinnan tekemiseksi.

CLI: iden käyttö graafisten käyttöliittymien yli johtaa nopeampiin ohjelmiin, helppoon automatisointiin ja alhaisempaan resurssien käyttöön. Jos jokin näistä eduista ei ole ratkaiseva sovelluksesi kannalta, sinun kannattaa ehkä käyttää graafista käyttöliittymää, koska ne ovat suositumpia tavallisten käyttäjien keskuudessa.