Interfețele de linie de comandă (CLI) sunt încă populare chiar și în fața interfețelor grafice cu utilizatorul (GUI) și a componentelor lor vizuale interactive. CLI-urile sunt încă utilizate datorită simplității, ușurinței, vitezei și mai puținelor resurse necesare pentru a configura o aplicație CLI.
Majoritatea aplicațiilor CLI rulează pe terminalul sistemului de operare sau pe linia de comandă, crescând flexibilitatea fără a necesita atât de multe resurse ca și GUI-uri.
Puteți construi CLI cu limbaje populare de la Python la C++, Rust și Go. Majoritatea limbilor oferă pachete pentru construirea de aplicații CLI fără dependențe externe.
Go și aplicații din linia de comandă
Unul dintre cazurile de utilizare preconizate pentru limbajul de programare Go este construirea CLI interactive performante. De-a lungul anilor, Go a câștigat acțiune în domeniu.
Go alimentează aplicațiile CLI populare, cum ar fi Docker CLI, Hugo, GitHub CLI și multe altele. Go este una dintre limbile preferate pentru construirea de aplicații CLI, având în vedere suportul de primă clasă pentru acestea, alături de performanță.
Există o steag pachet pentru analizarea liniei de comandă, dar îi lipsește multă funcționalitate de care veți avea nevoie pentru a construi aplicații moderne în linia de comandă. De asemenea, dezvoltarea de aplicații CLI cu steag pachetul poate fi complex pe măsură ce dimensiunea aplicației dvs. crește și încorporați mai multe funcții.
Ecosistemul Go are multe pachete de renume pentru construirea CLI, cu funcții care vă ajută să vă reduceți timpul de dezvoltare.
Pachetul Cobra
Cobra este unul dintre cele mai populare pachete pentru construirea CLI în ecosistemul Go și nu numai. Cobra este un pachet pentru crearea de aplicații CLI interactive și moderne în orice mediu.
Cobra oferă o interfață simplă pentru construirea CLI-urilor standard din industrie similare cu instrumentele Go și Git. Cobra alimentează multe aplicații CLI cu care ați interacționat, inclusiv Docker, Kubernetes, Twitch, Hugo și o mulțime de altele.
Cobra este un instrument ușor de utilizat, bazat pe subcomandă. Acesta acceptă steaguri compatibile cu POSIX, subcomenzi imbricate și steaguri globale, locale și în cascadă.
Cobra acceptă, de asemenea, sugestii inteligente, generarea automată a ajutorului, recunoașterea steagurilor și aliasuri de comandă. Permite completarea automată shell pe Bash, Powershell, Fish și Zsh și integrarea cu viperă pachet pentru aplicații cu 12 factori.
Rulați această comandă în terminalul directorului dvs. de lucru pentru a instala cea mai recentă versiune a pachetului Cobra și dependențele acestuia.
merge obține -u github.com/spf13/cobra@latest
Cobra oferă o aplicație CLI pentru o dezvoltare mai rapidă și mai ușoară. Pachetul Cobra—cli generează cod standard pe care îl puteți configura pentru a adăuga noi comenzi în aplicația dvs. fără probleme.
Rulați această comandă în terminalul directorului dvs. de lucru pentru a instala cea mai recentă versiune a pachetului Cobra-cli.
merge instalați github.com/spf13/cobra-cli@latest
Va trebui să setați variabila GOPATH în directorul de lucru pentru a utiliza generatorul Cobra (Cobra-cli) și alte instrumente de linie de comandă Go.
După o instalare reușită, puteți inițializa o aplicație Cobra în proiectul dvs. cu ajutorul init comanda.
cobra-cli init
După inițializarea unei aplicații Cobra, puteți utiliza adăuga subcomanda cu cobra-cli comandă pentru a crea și adăuga o nouă comandă la aplicația Cobra.
cobra-cli add newCommand
Comanda creează un fișier nou cu codul de care aveți nevoie pentru comandă. Puteți edita fișierul în funcție de operațiunea dvs.
Iată o funcție simplă de gestionare a comenzii pentru o comandă generată cu comanda Cobra-cli.
import (
"fmt"
„github.com/spf13/cobra”
"Buturuga"
"strconv"
)// o comandă generată de cobra
// newCmd reprezintă noua comandă
var newCmd = &cobra. Comanda {
Utilizați: „newCmd”,
Scurt: „Descrierea newCmd pe care o specificați”,
Lung: `O descriere mai lungă care se întinde pe mai multe rânduri și probabil conține exemple
și utilizarea utilizării comenzii dvs. De exemplu:
Cobra este o bibliotecă CLI pentru Go care dă putere aplicațiilor.
Această aplicație este un instrument pentru a genera fișierele necesare
pentru a crea rapid o aplicație Cobra.`,Alerga: func(cmd *cobra. Comandă, argumente []şir) {
dacălen(args) < 1 {
Buturuga. Fatal ("Fără argumente suplimentare")
}
argumente := args[0]
fmt. Println (argumente)
}
}funcinit() {
rootCmd. AddCommand (newCmd)// Aici vă veți defini steaguri și setările de configurare.
// Cobra acceptă steaguri persistente care vor funcționa pentru această comandă
// și toate subcomenzile, de exemplu:
// newCmd. PersistentFlags().String("foo", "", "Un ajutor pentru foo")
// Cobra acceptă steaguri locale care vor rula numai când această comandă
// este numit direct, de exemplu:
// newCmd. Flags().BoolP(„toggle”, „t”, false, „Mesaj de ajutor pentru comutare”)
}
Puteți accesa argumente suplimentare cu argumente argumentul funcției. Funcția de mai sus utilizează dacă declarație pentru a verifica dacă există un argument suplimentar de la terminal și imprimă argumentul.
Pachetul CLI
Pachetul Cli este un pachet minimalist cu tematică de expresivitate pentru construirea de aplicații CLI rapide și distribuibile în Go.
Pachetul Cli acceptă argumente de linie de comandă, steaguri și subcomenzi cu categorii. Are funcționalitate pentru a satisface opțiuni scurte, Finalizări Bash, ajutor generat și versiunea.
Pachetul Cli este interoperabil cu Go încorporat steag și context pachete și puteți folosi majoritatea funcțiilor din steag pachet cu Cli.
Rulați aceste comenzi în terminalul directorului dvs. de lucru pentru a adăuga pachetul Graphql-go și dependențele acestuia la proiect.
merge obțineți github.com/urfave/cli
Iată cum puteți adăuga o comandă la aplicația dvs. CLI cu pachetul Cli.
pachet principal
import (
"fmt"
"Buturuga"
"os"„github.com/urfave/cli/v2”
)funcprincipal() {
app := &cli. Aplicația {
Nume: "nou",
Utilizare: "face A nou comanda cu Cli pachet",
Acțiune: func(*cli. Context)eroare {
fmt. Println("Iată un nou comanda")
întoarcerezero
},
}
dacă err := app. Run (os. Args); greș!= zero {
Buturuga. Fatal (eroare)
}
}
În principal funcția, cea aplicația variabila este o instanță a unei aplicații Cli și a aplicației Acțiune câmpul este funcția de gestionare a aplicației. Aici nou comanda va imprima textul din funcție sau va returna o eroare dacă există erori din aplicație.
Pachetul Cli este util pentru proiecte mai mici, fără prea multă complexitate sau caracteristici.
Pachetul Go-Arg
Pachetul Go-arg este un pachet bazat pe structuri pentru analizarea argumentelor CLI în Go. Cu pachetul Go-arg, puteți declara structuri pentru argumentele CLI și puteți opera pe argumente ca structuri de date Go obișnuite. Pachetul Go-arg oferă argumente necesare, argumente poziționale, variabile de mediu, șiruri de utilizare, valori implicite și multe alte caracteristici.
Pachetul acceptă tipuri de bază precum număr întreg, virgulă mobilă, șir și boolean. De asemenea, acceptă tipuri mai complexe, cum ar fi adrese URL, durate de timp, adrese de e-mail, adrese MAC, indicatori, secțiuni, hărți și orice tip.
Puteți folosi obține comandă pentru a adăuga pachetul Go-arg la dependențele pachetului dvs.
merge obține github.com/alexflint/merge-arg
Pachetul Go-arg este simplu și intuitiv de utilizat. Iată cum puteți accepta argumente din linia de comandă și le puteți imprima pe consola liniei de comandă.
funcprincipal() {
var argumente struct {
Foo şir
Bar bool
}
arg. MustParse(&args)
fmt. Println (arg. Foo, argumente. Bar)
}
The argumente struct este instanța struct pentru aplicația CLI. The MustParse metoda parsează argumentele din linia de comandă în instanța struct.
Puteți rula cu ușurință programul cu alerga comanda și specificați argumentele după numele fișierului.
merge rulați principal.merge --foo=hello --bar
De asemenea, puteți utiliza construi comandă pentru a construi aplicația într-un executabil înainte de a rula executabilul și de a specifica argumentele.
merge construi principal.merge
./main --foo=hello --bar
Există diferențe semnificative între GUI și CLI pe care va trebui să le luați în considerare
În timpul dezvoltării, dacă trebuie să alegeți între construirea unui CLI sau GUI pentru utilizatorii dvs., va trebui să luați în considerare mulți factori pentru a face o alegere.
Utilizarea CLI-urilor peste GUI are ca rezultat programe mai rapide, o automatizare ușoară și o utilizare mai redusă a resurselor. Dacă oricare dintre aceste avantaje nu este crucial pentru aplicația dvs., s-ar putea să vă fie mai bine cu o interfață grafică, deoarece sunt mai populare în rândul utilizatorilor generali.