Podstawy Cobra
Polecenie główne, Run, Args i generowanie pomocy
Podstawy Cobra to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.
Czym jest Cobra?
Cobra to najpopularniejsza biblioteka Go do tworzenia aplikacji CLI. Udostępnia polecenia, flagi, podpolecenia, generowanie pomocy, uzupełnianie składni powłoki oraz walidację argumentów.
Instalowanie Cobra
Należy dodać cobra jako zależność i opcjonalnie użyć generatora CLI:
go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myappPolecenie główne
Każda aplikacja Cobra ma polecenie główne. Należy je zdefiniować za pomocą Use, krótkiego opisu Short oraz funkcji Run:
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() }Struktura cobra.Command
Najważniejsze pola: Use (nazwa polecenia i skrócony opis), Short (jednolinijkowy opis), Long (szczegółowa pomoc), Run (wykonuje polecenie), RunE (zwraca błąd).
RunE do propagowania błędów
Należy używać RunE zamiast Run, aby zwracać błędy. Cobra automatycznie wyświetla błąd i kończy działanie z niezerowym kodem.
var rootCmd = &cobra.Command{
RunE: func(cmd *cobra.Command, args []string) error {
return doWork()
},
}Dodawanie podpoleceń
Należy utworzyć podpolecenia jako osobne wartości cobra.Command i dodać je do polecenia głównego za pomocą AddCommand:
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the server",
RunE: runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }Struktura projektu Cobra
Konwencjonalny układ: katalog cmd/ z jednym plikiem dla każdego podpolecenia oraz plikiem root.go. Plik main.go wywołuje tylko cmd.Execute().
cmd/
root.go // rootCmd definition
serve.go // serveCmd
migrate.go // migrateCmd
main.goWalidacja argumentów
Należy używać wbudowanych walidatorów, takich jak cobra.ExactArgs i MinimumNArgs, lub własnej funkcji ValidArgsFunction:
var cmd = &cobra.Command{
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println(args[0], args[1])
return nil
},
}Automatycznie generowana pomoc
Cobra automatycznie generuje --help / -h dla każdego polecenia oraz podpolecenie help. Tekst pochodzi z pól Use, Short, Long oraz flag.
Uzupełnianie składni powłoki
Cobra od razu generuje skrypty uzupełniania składni dla bash, zsh, fish i PowerShell za pomocą rootCmd.GenBashCompletion lub wbudowanego podpolecenia completion.
Integracja z Viper
Cobrę można połączyć z Viperem w celu zarządzania konfiguracją: flagi zdefiniowane za pomocą Cobra są wiązane z kluczami Viper, więc wartości mogą pochodzić z flag, zmiennych środowiskowych lub plików konfiguracyjnych.
Szybki test
Czym różnią się cobra.Command.Run i RunE?
Podsumowanie: podstawy Cobra
Najważniejsze informacje:
- cobra.Command z polami Use/Short/RunE to podstawowy element konstrukcyjny
- rootCmd.AddCommand(subCmd) służy do tworzenia hierarchii poleceń
- cobra.ExactArgs/MinimumNArgs służą do walidacji argumentów
- Pomoc i uzupełnianie składni są generowane automatycznie
Często zadawane pytania
Czy lekcja „Podstawy Cobra” jest bezpłatna?
Tak — pełny tekst „Podstawy Cobra” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Podstawy Cobra”?
Polecenie główne, Run, Args i generowanie pomocy Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Go Academy?
Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Podstawy Cobra”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?
Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.