A parancssori interfészek (CLI-k) még a grafikus felhasználói felületekkel (GUI) és azok interaktív vizuális összetevőivel szemben is népszerűek. A CLI-k továbbra is használatban vannak egyszerűségük, könnyűségük, gyorsaságuk és a CLI-alkalmazások beállításához szükséges kevesebb erőforrás miatt.

A legtöbb CLI-alkalmazás az operációs rendszer terminálján vagy parancssorán fut, növelve a rugalmasságot anélkül, hogy annyi erőforrást igényelne, mint a grafikus felhasználói felületek.

CLI-ket készíthet népszerű nyelvekkel a Pythontól a C++-ig, a Rust-ig és a Go-ig. A legtöbb nyelv csomagokat biztosít a CLI-alkalmazások külső függőségek nélküli létrehozásához.

Go és Parancssori alkalmazások

A Go programozási nyelv egyik tervezett használati esete a hatékony interaktív CLI-k építése. Az évek során a Go teret hódított a területen.

A Go olyan népszerű CLI-alkalmazásokat támogat, mint a Docker CLI, a Hugo, a GitHub CLI és még sok más. A Go az egyik előnyben részesített nyelv a CLI-alkalmazások készítéséhez, mivel teljesítménye mellett első osztályú támogatja őket.

instagram viewer

Van egy zászló csomag a parancssori elemzéshez, de hiányzik belőle sok olyan funkció, amelyre a modern parancssori alkalmazások létrehozásához szüksége lenne. Ezenkívül CLI-alkalmazások fejlesztése a zászló csomag bonyolult lehet, ahogy az alkalmazás mérete növekszik, és több funkciót épít be.

A Go ökoszisztéma számos jó hírű csomagot tartalmaz a CLI-k építéséhez, amelyek segítségével csökkenthető a fejlesztési idő.

A Cobra csomag

Kobra az egyik legnépszerűbb csomag a CLI-k építéséhez a Go ökoszisztémában és azon túl. A Cobra egy csomag interaktív, modern CLI alkalmazások létrehozásához bármilyen környezetben.

A Cobra egyszerű felületet biztosít a Go Tools-hoz és a Githez hasonló ipari szabványos CLI-k készítéséhez. A Cobra számos CLI-alkalmazást támogat, amelyekkel már interakcióba lépett, beleértve a Dockert, a Kuberneteset, a Twitchet, a Hugo-t és még sok mást.

A Cobra egy könnyen használható, alparancs alapú eszköz. Támogatja a POSIX-kompatibilis jelzőket, a beágyazott alparancsokat, valamint a globális, lokális és lépcsőzetes jelzőket.

A Cobra támogatja az intelligens javaslatokat, az automatikus súgógenerálást, a zászlófelismerést és a parancsálneveket is. Lehetővé teszi a shell automatikus kiegészítését Bash, Powershell, Fish és Zsh rendszeren, valamint az integrációt a vipera csomag 12 faktoros alkalmazásokhoz.

Futtassa ezt a parancsot a munkakönyvtár termináljában a Cobra-csomag és függőségei legújabb verziójának telepítéséhez.

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

A Cobra CLI alkalmazást biztosít a gyorsabb és egyszerűbb fejlesztés érdekében. A Cobra-cli csomag olyan általános kódot hoz létre, amelyet úgy konfigurálhat, hogy gond nélkül új parancsokat adjon hozzá az alkalmazáshoz.

Futtassa ezt a parancsot a munkakönyvtár termináljában a Cobra-cli csomag legújabb verziójának telepítéséhez.

megy telepítse a github.com/spf13/cobra-cli@latest

A Cobra generátor (Cobra-cli) és más Go parancssori eszközök használatához be kell állítania a GOPATH változót a munkakönyvtárába.

A sikeres telepítés után inicializálhatja a Cobra alkalmazást a projektben a benne parancs.

kobra-kli init

A Cobra alkalmazás inicializálása után használhatja a add hozzá alparancs a kobra-cli parancsot egy új parancs létrehozásához és hozzáadásához a Cobra alkalmazáshoz.

cobra-cli add newCommand

A parancs létrehoz egy új fájlt a parancshoz szükséges kóddal. A fájlt a művelete alapján szerkesztheti.

Íme egy egyszerű parancskezelő funkció a Cobra-cli paranccsal generált parancsokhoz.

import (
"fmt"
"github.com/spf13/cobra"
"napló"
"strconv"
)

// kobra által generált parancs

// A newCmd az új parancsot képviseli
var newCmd = &kobra. Parancs {
Használja: "newCmd",
Röviden: "Az Ön által megadott newCmd leírás",
Hosszú: "Hosszabb leírás, amely több sort ölel fel, és valószínűleg példákat is tartalmaz
és a parancs használatának módja. Például:
A Cobra egy CLI könyvtár számára Go, amely felhatalmazza az alkalmazásokat.
Ez az alkalmazás egy eszköz a szükséges fájlok létrehozásához
hogy gyorsan hozzon létre egy Cobra alkalmazást.`,

Fuss: func(cmd *kobra. Parancs, args []húr) {
halen(args) < 1 {
log. Végzetes ("Nincs további érv")
}
argumentumok := args[0]
fmt. Println (érvek)
}
}

funcbenne() {
rootCmd. AddCommand (newCmd)

// Itt adhatja meg zászlóit és konfigurációs beállításait.

// A Cobra támogatja a Persistent Flags funkciót, amely működik ehhez a parancshoz
// és az összes alparancs, pl.:
// newCmd. PersistentFlags().String("foo", "", "Súgó foo-hoz")

// A Cobra támogatja a helyi zászlókat, amelyek csak akkor futnak le, ha ez a parancs
// közvetlenül hívják, pl.:
// newCmd. Flags().BoolP("toggle", "t", false, "Súgó üzenet a váltáshoz")
}

További argumentumokat érhet el a args a függvény argumentuma. A fenti funkció a ha utasítást, hogy ellenőrizze, van-e további argumentum a termináltól, és kiírja az argumentumot.

A CLI csomag

A Cli csomag egy expresszivitás témájú minimalista csomag gyors, terjeszthető CLI-alkalmazások készítéséhez a Go-ban.

A Cli csomag támogatja a parancssori argumentumokat, jelzőket és a kategóriákkal ellátott alparancsokat. Olyan funkcionalitással rendelkezik, amely lehetővé teszi a rövid lehetőségeket, Bash befejezések, generált súgó és verziókezelés.

A Cli csomag együttműködik a Go beépítettével zászló és kontextus csomagokat, és használhatja a legtöbb szolgáltatást a zászló csomag a Cli-vel.

Futtassa ezeket a parancsokat a munkakönyvtár termináljában, hogy hozzáadja a Graphql-go csomagot és függőségeit a projekthez.

megy töltse le a github.com/urfave/cli webhelyet

Így adhat hozzá parancsot a CLI-alkalmazáshoz a Cli csomaggal.

csomag fő-

import (
"fmt"
"napló"
"os"

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

funcfő-() {
alkalmazás := &cli. App {
Név: "új",
Használat: "készítsenek a új parancsot a Cli-vel csomag",
Akció: func(*cli. Kontextus)hiba {
fmt. Println("Itt van a új parancs")
Visszatérésnulla
},
}

ha hiba := kb. Fuss (os. Args); hiba! = nulla {
log. Végzetes (hiba)
}
}

Ban,-ben fő- funkció, a kb változó a Cli alkalmazás és az alkalmazás egy példánya Akció mező az alkalmazás kezelő funkciója. Itt, a új parancs kinyomtatja a függvény szövegét, vagy hibát ad vissza, ha az alkalmazás hibáit észlel.

A Cli csomag kisebb projektekhez nyújt segítséget, különösebb bonyolultság és funkciók nélkül.

A Go-Arg csomag

A Go-arg csomag egy struct-alapú csomag a CLI-argumentumok elemzéséhez a Go-ban. A Go-arg csomaggal struktúrákat deklarálhat a CLI argumentumokhoz, és az argumentumokat normál Go adatstruktúraként kezelheti. A Go-arg csomag tartalmazza a szükséges argumentumokat, pozíció argumentumokat, környezeti változókat, használati karakterláncokat, alapértelmezett értékeket és sok egyéb szolgáltatást.

A csomag olyan alaptípusokat támogat, mint az egész, a lebegőpontos, a karakterlánc és a logikai érték. Támogatja az összetettebb típusokat is, például URL-eket, időtartamokat, e-mail címeket, MAC címek, mutatók, szeletek, térképek és a Bármi típus.

Használhatja a kap parancsot a Go-arg csomag hozzáadásához a csomag függőségeihez.

megy szerezd be a github.com/alexflint/megy-arg

A Go-arg csomag használata egyszerű és intuitív. Így fogadhat el argumentumokat a parancssorból, és nyomtathatja ki őket a parancssori konzolra.

funcfő-() {
var args struct {
Foo húr
Rúd bool
}
arg. MustParse(&args)
fmt. Println (args. Fú, args. Rúd)
}

A args A struct a CLI alkalmazás struct példánya. A MustParse metódus elemzi az argumentumokat a parancssorból a struct példányba.

A programot egyszerűen futtathatja a fuss parancsot, és adja meg az argumentumokat a fájlnév után.

megy fuss fő.megy --foo=hello --bar

Használhatja továbbá a épít paranccsal, hogy az alkalmazást végrehajthatóvá építse, mielőtt futtatná a végrehajtható fájlt és megadná az argumentumokat.


megy építeni fő.megy
./main --foo=hello --bar

A GUI-k és a CLI-k között jelentős különbségek vannak, amelyeket figyelembe kell vennie

Ha a fejlesztés során választania kell a CLI vagy a grafikus felhasználói felület létrehozása között, számos tényezőt kell figyelembe vennie a választáshoz.

A CLI-k grafikus felhasználói felületeken való használata gyorsabb programokat, egyszerű automatizálást és alacsonyabb erőforrás-kihasználást eredményez. Ha ezen előnyök bármelyike ​​nem kulcsfontosságú az alkalmazás szempontjából, jobb lehet egy grafikus felhasználói felület, mivel ezek népszerűbbek az általános felhasználók körében.