Cobra Temelleri
Kök komut, Run, Args ve yardım oluşturma
Cobra Temelleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Cobra nedir?
Cobra, CLI uygulamaları oluşturmak için en popüler Go kitaplığıdır. Komutlar, bayraklar, alt komutlar, yardım oluşturma, kabuk tamamlama ve bağımsız değişken doğrulama özellikleri sağlar.
Cobra'yı yükleme
cobra'yı bağımlılık olarak ekleyin ve isteğe bağlı olarak CLI oluşturucuyu kullanın:
go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myappKök komut
Her Cobra uygulamasının bir kök komutu vardır. Bu komutu Use, Short açıklaması ve bir Run işleviyle tanımlayın:
var rootCmd = &cobra.Command{
Use: "myapp",
Short: "My awesome CLI",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Hello from root!")
},
}
func main() { rootCmd.Execute() }cobra.Command yapısı
Temel alanlar: Use (komut adı + özeti), Short (tek satırlık açıklama), Long (ayrıntılı yardım), Run (komutu yürütür), RunE (hata döndürür).
Hata yayılımı için RunE
Hataları döndürmek için Run yerine RunE kullanın. Cobra hatayı yazdırır ve sıfır olmayan bir kodla otomatik olarak çıkar.
var rootCmd = &cobra.Command{
RunE: func(cmd *cobra.Command, args []string) error {
return doWork()
},
}Alt komut ekleme
Alt komutları ayrı cobra.Command değerleri olarak oluşturun ve AddCommand ile köke ekleyin:
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the server",
RunE: runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }Cobra proje yapısı
Geleneksel düzen: her alt komut için bir dosya içeren cmd/ dizini ve root.go. main.go yalnızca cmd.Execute() çağrısını yapar.
cmd/
root.go // rootCmd definition
serve.go // serveCmd
migrate.go // migrateCmd
main.goBağımsız değişken doğrulama
cobra.ExactArgs, MinimumNArgs gibi yerleşik doğrulayıcıları veya özel bir ValidArgsFunction kullanın:
var cmd = &cobra.Command{
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println(args[0], args[1])
return nil
},
}Otomatik oluşturulan yardım
Cobra her komut için --help / -h seçeneklerini ve otomatik olarak bir help alt komutunu oluşturur. Metin Use, Short, Long ve bayraklardan alınır.
Kabuk tamamlama
Cobra, rootCmd.GenBashCompletion veya yerleşik completion alt komutu aracılığıyla bash, zsh, fish ve PowerShell için tamamlama betiklerini kullanıma hazır olarak oluşturur.
Viper ile tümleştirme
Yapılandırma yönetimi için Cobra'yı Viper ile birleştirin: Cobra ile tanımlanan bayraklar Viper anahtarlarına bağlanır; böylece değerler bayraklardan, ortam değişkenlerinden veya yapılandırma dosyalarından gelebilir.
Hızlı Kontrol
cobra.Command.Run ile RunE arasındaki fark nedir?
Özet: Cobra Temelleri
Temel noktalar:
- Use/Short/RunE içeren cobra.Command temel yapı taşıdır
- Hiyerarşik komutlar için rootCmd.AddCommand(subCmd)
- Bağımsız değişken doğrulaması için cobra.ExactArgs/MinimumNArgs
- Yardım ve tamamlama otomatik olarak oluşturulur
Sıkça Sorulan Sorular
“Cobra Temelleri” dersi ücretsiz mi?
Evet — “Cobra Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Cobra Temelleri” dersinde ne öğreneceğim?
Kök komut, Run, Args ve yardım oluşturma Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Cobra Temelleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.