Käsurea liidesed (CLI-d) on endiselt populaarsed isegi graafiliste kasutajaliideste (GUI) ja nende interaktiivsete visuaalsete komponentide puhul. CLI-d on endiselt kasutusel nende lihtsuse, lihtsuse, kiiruse ja CLI-rakenduse seadistamiseks vajalike ressursside vähenemise tõttu.

Enamik CLI-rakendusi töötab operatsioonisüsteemi terminalil või käsureal, suurendades paindlikkust, nõudmata nii palju ressursse kui GUI-d.

Saate luua CLI-sid populaarsete keeltega alates Pythonist kuni C++, Rusti ja Goni. Enamik keeli pakuvad pakette CLI-rakenduste loomiseks ilma väliste sõltuvusteta.

Mine ja käsurearakendused

Üks Go programmeerimiskeele kavandatud kasutusjuhtumeid on toimivate interaktiivsete CLI-de loomine. Aastate jooksul on Go saanud põllul haardejõudu.

Go võimaldab populaarseid CLI-rakendusi, nagu Docker CLI, Hugo, GitHub CLI ja palju muud. Go on CLI-rakenduste loomisel üks eelistatumaid keeli, arvestades nende esmaklassilist tuge ja jõudlust.

Seal on lipp pakett käsurea parsimiseks, kuid sellel puudub palju funktsioone, mida vajate kaasaegsete käsurearakenduste loomiseks. Samuti CLI-rakenduste arendamine rakendusega

lipp pakett võib olla keeruline, kuna teie rakenduse suurus suureneb ja lisate rohkem funktsioone.

Go ökosüsteemil on CLI-de loomiseks palju mainekaid pakette, mille funktsioonid aitavad vähendada teie arendusaega.

Kobra pakett

Kobra on üks populaarsemaid pakette CLI-de loomiseks nii Go ökosüsteemis kui ka mujal. Cobra on pakett interaktiivsete kaasaegsete CLI-rakenduste loomiseks mis tahes keskkonnas.

Cobra pakub lihtsat liidest Go tööriistade ja Gitiga sarnaste tööstusstandardite CLI-de loomiseks. Cobra toidab paljusid CLI-rakendusi, millega olete suhelnud, sealhulgas Docker, Kubernetes, Twitch, Hugo ja paljud teised.

Cobra on lihtsalt kasutatav alamkäskudepõhine tööriist. See toetab POSIX-iga ühilduvaid lippe, pesastatud alamkäske ning globaalseid, kohalikke ja kaskaadlippe.

Cobra toetab ka intelligentseid soovitusi, automaatset abi genereerimist, liputuvastust ja käskude varjunimesid. See võimaldab kesta automaatset lõpetamist Bashis, Powershellis, Fishis ja Zsh-s ning integreerimist rästik pakett 12-faktoriliste rakenduste jaoks.

Cobra paketi ja selle sõltuvuste uusima versiooni installimiseks käivitage see käsk oma töökataloogi terminalis.

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

Cobra pakub kiiremaks ja lihtsamaks arendamiseks CLI-rakendust. Cobra-cli pakett genereerib standardkoodi, mille saate konfigureerida lisama oma rakendusele ilma probleemideta uusi käske.

Cobra-cli paketi uusima versiooni installimiseks käivitage see käsk oma töökataloogi terminalis.

mine installige github.com/spf13/cobra-cli@latest

Cobra generaatori (Cobra-cli) ja muude Go käsurea tööriistade kasutamiseks peate määrama oma GOPATH muutuja oma töökataloogi.

Pärast edukat installimist saate Cobra rakenduse oma projektis lähtestada rakendusega selles käsk.

kobra-klii init

Pärast Cobra rakenduse lähtestamist saate kasutada lisama allkäsk koos kobra-klii käsk, et luua ja lisada oma Cobra rakendusse uus käsk.

cobra-cli lisage uus käsk

Käsk loob uue faili käsu jaoks vajaliku koodiga. Saate faili redigeerida oma toimingu põhjal.

Siin on lihtne käsuhalduri funktsioon käsuga Cobra-cli genereeritud käsu jaoks.

importida (
"fmt"
"github.com/spf13/cobra"
"logi"
"strconv"
)

// kobra genereeritud käsk

// newCmd esindab uut käsku
var newCmd = &kobra. käsk {
Kasutage: "newCmd",
Lühike: "Teie määratud uusCmd kirjeldus",
Pikk: Pikem kirjeldus, mis hõlmab mitut rida ja sisaldab tõenäoliselt näiteid
ja teie käsu kasutamise kasutamine. Näiteks:
Cobra on CLI raamatukogu jaoks Mine, mis annab rakendustele võimaluse.
See rakendus on tööriist vajalike failide genereerimiseks
Cobra rakenduse kiireks loomiseks.`,

Jookse: func(cmd *kobra. Käsk, args []string) {
kuilen(args) < 1 {
logi. Saatuslik ("Täiendavaid argumente pole")
}
argumendid := args[0]
fmt. Println (argumendid)
}
}

funcselles() {
rootCmd. AddCommand (uusCmd)

// Siin saate määrata oma lipud ja konfiguratsiooniseaded.

// Cobra toetab püsivaid lippe, mis selle käsu puhul töötavad
// ja kõik alamkäsud, nt:
// uusCmd. PersistentFlags().String("foo", "", "Abi foo jaoks")

// Cobra toetab kohalikke lippe, mis käivituvad ainult siis, kui see käsk
// kutsutakse otse, nt:
// uusCmd. Flags().BoolP("toggle", "t", false, "Abisõnum ümberlülitamiseks")
}

Täiendavatele argumentidele pääsete juurde nupuga args funktsiooni argument. Ülaltoodud funktsioon kasutab kui avaldus, et kontrollida, kas terminalist on lisaargument, ja prindib argumendi.

CLI pakett

Cli pakett on väljendusvõimeteemaline minimalistlik pakett kiirete levitatavate CLI-rakenduste loomiseks Go-s.

Cli pakett toetab käsurea argumente, lippe ja kategooriatega alamkäske. Sellel on funktsionaalsus lühikeste valikute jaoks, Bashi lõpetamised, loodud spikker ja versioonimine.

Cli pakett on koostalitlusvõimeline Go sisseehitatud seadmega lipp ja Sisu pakette ja saate kasutada enamikku rakenduse funktsioonidest lipp pakett koos Cli-ga.

Käivitage need käsud oma töökataloogi terminalis, et lisada projektile Graphql-go pakett ja selle sõltuvused.

mine hankige github.com/urfave/cli

Siit saate teada, kuidas saate Cli-paketiga oma CLI-rakendusse käsu lisada.

pakett peamine

importida (
"fmt"
"logi"
"os"

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

funcpeamine() {
rakendus := &cli. Rakendus {
Nimi: "uus",
Kasutamine: "tegema a uus käsk Cli-ga pakett",
Tegevus: func(*kli. Kontekst)viga {
fmt. Println ("Siin on a uus käsk")
tagasinull
},
}

kui viga := rakendus. Jookse (os. Args); eks!= null {
logi. Saatuslik (viga)
}
}

Aastal peamine funktsioon, rakendus muutuja on Cli rakenduse ja rakenduse eksemplar Tegevus väli on rakenduse töötleja funktsioon. Siin, uus käsk prindib funktsiooni teksti või tagastab veateate, kui rakenduses on vigu.

Cli pakett on abiks väiksemate projektide puhul ilma suurema keerukuse või funktsioonideta.

Go-Argi pakett

Go-argi pakett on struktuuripõhine pakett CLI argumentide sõelumiseks rakenduses Go. Go-arg paketi abil saate deklareerida CLI argumentide struktuure ja kasutada argumente tavaliste Go andmestruktuuridena. Go-arg pakett sisaldab nõutavaid argumente, positsiooniargumente, keskkonnamuutujaid, kasutusstringe, vaikeväärtusi ja palju muid funktsioone.

Pakett toetab põhitüüpe, nagu täisarv, ujukoma, string ja tõeväärtus. Samuti toetab see keerukamaid tüüpe, nagu URL-id, aja kestused, e-posti aadressid, MAC-aadressid, osutid, lõigud, kaardid ja ükskõik milline tüüp.

Võite kasutada saada käsk Go-arg paketi lisamiseks oma paketi sõltuvustesse.

mine hankige github.com/alexflint/mine-arg

Go-arg paketti on lihtne ja intuitiivne kasutada. Siit saate teada, kuidas saate käsurealt argumente vastu võtta ja need käsureakonsooli printida.

funcpeamine() {
var args struktuur {
Foo string
Baar bool
}
arg. MustParse (&argumendid)
fmt. Println (args. Foo, args. baar)
}

The args struct on CLI rakenduse struct eksemplar. The MustParse meetod analüüsib argumendid käsurealt struct eksemplari.

Programmi saate hõlpsalt käivitada jooksma käsk ja määrake failinime järel argumendid.

mine jooksma põhi.mine --foo=tere --bar

Võite kasutada ka ehitada käsk, et ehitada teie rakendus enne käivitatava faili käivitamist ja argumentide täpsustamist käivitatavaks failiks.


mine ehitada peamine.mine
./main --foo=tere --bar

GUI-de ja CLI-de vahel on olulisi erinevusi, mida peate arvestama

Kui peate arenduse ajal valima oma kasutajatele CLI või GUI loomise vahel, peate valiku tegemiseks arvestama paljude teguritega.

CLI-de kasutamine graafiliste kasutajaliidese kohal toob kaasa kiiremad programmid, lihtsa automatiseerimise ja madalama ressursikasutuse. Kui mõni neist eelistest ei ole teie rakenduse jaoks otsustava tähtsusega, võib teil olla parem kasutada GUI-d, kuna need on tavakasutajate seas populaarsemad.