Komut Satırı Arayüzleri (CLI'ler), Grafik Kullanıcı Arayüzleri (GUI'ler) ve bunların etkileşimli görsel bileşenleri karşısında bile hala popülerdir. CLI'ler, basitlikleri, kolaylıkları, hızları ve bir CLI uygulaması kurmak için gereken daha az kaynak nedeniyle hala kullanımdadır.
Çoğu CLI uygulaması, işletim sisteminin terminalinde veya komut satırında çalışarak, GUI'ler kadar kaynak gerektirmeden esnekliği artırır.
Python'dan C++, Rust ve Go'ya kadar popüler dillerle CLI'ler oluşturabilirsiniz. Çoğu dil, harici bağımlılıklar olmadan CLI uygulamaları oluşturmak için paketler sağlar.
Git ve Komut Satırı Uygulamaları
Go programlama dili için amaçlanan kullanım durumlarından biri, performanslı etkileşimli CLI'ler oluşturmaktır. Go, yıllar geçtikçe sahada çekiş kazandı.
Go, Docker CLI, Hugo, GitHub CLI ve daha fazlası gibi popüler CLI uygulamalarını destekler. Go, performansının yanı sıra birinci sınıf desteği de göz önüne alındığında, CLI uygulamaları oluşturmak için tercih edilen dillerden biridir.
Orada bir bayrak paket, ancak modern komut satırı uygulamaları oluşturmak için ihtiyaç duyacağınız pek çok işlevsellikten yoksundur. Ayrıca, CLI uygulamaları geliştirme bayrak uygulamanızın boyutu arttıkça ve daha fazla özellik dahil ettikçe paket karmaşık olabilir.
Go ekosistemi, geliştirme sürenizi kısaltmanıza yardımcı olacak özelliklere sahip, CLI oluşturmak için birçok saygın pakete sahiptir.
Kobra Paketi
Kobra Go ekosisteminde ve ötesinde CLI'ler oluşturmak için en popüler paketlerden biridir. Cobra, herhangi bir ortamda etkileşimli, modern CLI uygulamaları oluşturmaya yönelik bir pakettir.
Cobra, Go araçlarına ve Git'e benzer endüstri standardı CLI'ler oluşturmak için basit bir arabirim sağlar. Cobra; Docker, Kubernetes, Twitch, Hugo ve diğerleri dahil olmak üzere etkileşim kurduğunuz birçok CLI uygulamasına güç sağlar.
Cobra, kullanımı kolay, alt komut tabanlı bir araçtır. POSIX uyumlu bayrakları, iç içe alt komutları ve genel, yerel ve ardışık bayrakları destekler.
Cobra ayrıca akıllı önerileri, otomatik yardım oluşturmayı, bayrak tanımayı ve komut takma adlarını destekler. Bash, Powershell, Fish ve Zsh üzerinde kabuğun otomatik olarak tamamlanmasına ve engerek 12 faktörlü uygulamalar için paket.
Cobra paketinin ve bağımlılıklarının en son sürümünü yüklemek için çalışma dizininizin terminalinde bu komutu çalıştırın.
Gitmek -u github.com/spf13/cobra@latest'i edinin
Cobra, daha hızlı ve daha kolay geliştirme için bir CLI uygulaması sağlar. Cobra—cli paketi, uygulamanıza sorunsuz bir şekilde yeni komutlar eklemek için yapılandırabileceğiniz standart bir kod oluşturur.
Cobra-cli paketinin en son sürümünü yüklemek için çalışma dizininizin terminalinde bu komutu çalıştırın.
Gitmek github.com/spf13/cobra-cli@latest'i yükleyin
Cobra oluşturucu (Cobra-cli) ve diğer Go komut satırı araçlarını kullanmak için GOPATH değişkeninizi çalışma dizininize ayarlamanız gerekir.
Başarılı bir kurulumun ardından projenizde bir Cobra uygulamasını şu şekilde başlatabilirsiniz: içinde emretmek.
kobra-cli init
Bir Cobra uygulamasını başlattıktan sonra, eklemek ile alt komut kobra-cli Cobra uygulamanıza yeni bir komut oluşturmak ve eklemek için komut.
cobra-cli yeni Komut ekle
Komut, komut için ihtiyacınız olan kodla yeni bir dosya oluşturur. İşleminize göre dosyayı düzenleyebilirsiniz.
İşte Cobra-cli komutuyla oluşturulan bir komut için basit bir komut işleyici işlevi.
içe aktarmak (
"fmt"
"github.com/spf13/kobra"
"kayıt"
"strconv"
)// kobra tarafından oluşturulmuş bir komut
// newCmd yeni komutu temsil eder
var yeni Komut = &kobra. Emretmek {
Kullanım: "newCmd",
Short: "Belirttiğiniz newCmd açıklaması",
Uzun: `Birden çok satıra yayılan ve muhtemelen örnekler içeren daha uzun bir açıklama
ve komutunuzu kullanmanın kullanımı. Örneğin:
Cobra bir CLI kitaplığıdır için Uygulamalara güç veren gidin.
Bu uygulama, gerekli dosyaları oluşturmak için bir araçtır
hızla bir Cobra uygulaması oluşturmak için.`,Koşmak: işlev(cmd *kobra. Komut, bağımsız değişkenler []sicim) {
eğerlen(argüler) < 1 {
kayıt. Fatal("Ek Bağımsız Değişken Yok")
}
argümanlar := argümanlar[0]
fmt. Println (argümanlar)
}
}işleviçinde() {
rootCmd. Komut Ekle (yeni Komut)// Burada bayraklarınızı ve yapılandırma ayarlarınızı tanımlayacaksınız.
// Cobra, bu komut için çalışacak Kalıcı Bayrakları destekler
// ve tüm alt komutlar, örneğin:
// yeniKom. PersistentFlags().String("foo", "", "foo için bir yardım")
// Cobra, yalnızca bu komut çalıştırıldığında çalışacak yerel bayrakları destekler
// doğrudan çağrılır, örneğin:
// yeniKom. Flags().BoolP("toggle", "t", false, "toggle için yardım mesajı")
}
ile ek argümanlara erişebilirsiniz. argümanlar fonksiyonun argümanı. Yukarıdaki işlev, eğer terminalden ek bir argüman olup olmadığını kontrol etmek için ifade ve argümanı yazdırır.
CLI Paketi
Cli paketi Go'da hızlı, dağıtılabilir CLI uygulamaları oluşturmaya yönelik ifade temalı minimalist bir pakettir.
Cli paketi, kategorilerle birlikte komut satırı bağımsız değişkenlerini, bayrakları ve alt komutları destekler. Kısa seçenekleri karşılayacak işlevselliğe sahiptir, Bash tamamlamaları, oluşturulan yardım ve sürüm oluşturma.
Cli paketi, Go'nun yerleşik yazılımıyla birlikte çalışabilir. bayrak Ve bağlam paketler ve özelliklerin çoğunu kullanabilirsiniz. bayrak Cli ile paketleyin.
Graphql-go paketini ve bağımlılıklarını projenize eklemek için çalışma dizininizin terminalinde bu komutları çalıştırın.
Gitmek github.com/urfave/cli'yi edinin
Cli paketi ile CLI uygulamanıza nasıl komut ekleyeceğiniz aşağıda açıklanmıştır.
paket ana
içe aktarmak (
"fmt"
"kayıt"
"işletim sistemi""github.com/urfave/cli/v2"
)işlevana() {
uygulama := &cli. Uygulama {
İsim: "yeni",
Kullanım: "yapmak A yeni Cli ile komut paket",
Aksiyon: işlev(*cli. Bağlam)hata {
fmt. Println("İşte bir yeni emretmek")
geri dönmeksıfır
},
}
eğer hata := uygulama. Çalıştır (os. argümanlar); hata!= sıfır {
kayıt. Ölümcül (hata)
}
}
İçinde ana işlev, uygulama değişkeni, bir Cli uygulamasının bir örneğidir ve uygulamanın Aksiyon alan, uygulamanın işleyici işlevidir. Burada, yeni komut, işlevden metni yazdırır veya uygulamadan herhangi bir hata varsa bir hata döndürür.
Cli paketi, çok fazla karmaşıklık veya özellik içermeyen daha küçük projeler için yararlıdır.
Go-Arg Paketi
Go-arg paketi Go'da CLI bağımsız değişkenlerini ayrıştırmak için yapı tabanlı bir pakettir. Go-arg paketiyle, CLI bağımsız değişkenleri için yapıları bildirebilir ve bağımsız değişkenler üzerinde normal Go veri yapıları gibi işlem yapabilirsiniz. Go-arg paketi, gerekli bağımsız değişkenleri, konumsal bağımsız değişkenleri, ortam değişkenlerini, kullanım dizelerini, varsayılan değerleri ve diğer birçok özelliği sağlar.
Paket, tamsayı, kayan nokta, dize ve boolean gibi temel türleri destekler. Ayrıca URL'ler, zaman süreleri, e-posta adresleri gibi daha karmaşık türleri de destekler. MAC adresleri, işaretçiler, dilimler, haritalar ve herhangi tip.
kullanabilirsiniz elde etmek Go-arg paketini paketinizin bağımlılıklarına eklemek için komut.
Gitmek github.com/alexflint/ adresini edininGitmek-arg
Go-arg paketinin kullanımı basit ve sezgiseldir. Komut satırından bağımsız değişkenleri şu şekilde kabul edebilir ve bunları komut satırı konsoluna yazdırabilirsiniz.
işlevana() {
var argümanlar yapı {
foo sicim
Çubuk bool
}
argüman Zorunlu Ayrıştırma(&args)
fmt. Yazdır (args. Foo, argümanlar. Çubuk)
}
bu argümanlar struct, CLI uygulaması için struct örneğidir. bu Zorunlu Ayrıştırma yöntem, argümanları komut satırından yapı örneğine ayrıştırır.
programı ile kolayca çalıştırabilirsiniz. koşmak komutunu girin ve dosya adından sonra bağımsız değişkenleri belirtin.
Gitmek ana çalıştır.Gitmek --foo=merhaba --bar
Şunu da kullanabilirsiniz: inşa etmek yürütülebilir dosyayı çalıştırmadan ve bağımsız değişkenleri belirtmeden önce uygulamanızı bir yürütülebilir dosyada oluşturmak için komut.
Gitmek ana yapı.Gitmek
./main --foo=merhaba --bar
GUI'ler ve CLI'ler Arasında Göz önünde bulundurmanız Gereken Önemli Farklılıklar Vardır
Geliştirme sırasında, kullanıcılarınız için bir CLI veya GUI oluşturmak arasında seçim yapmak zorunda kalırsanız, seçim yapmak için birçok faktörü göz önünde bulundurmanız gerekir.
GUI'ler yerine CLI'lerin kullanılması daha hızlı programlar, kolay otomasyon ve daha düşük kaynak kullanımı sağlar. Bu avantajlardan herhangi biri uygulamanız için çok önemli değilse, genel kullanıcılar arasında daha popüler oldukları için bir GUI ile daha iyi durumda olabilirsiniz.