0Pricing
Go Academy · Lekcja

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 myapp

Polecenie 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.go

Walidacja 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.

Wszystkie lekcje w tym kursie

  1. Podstawy Cobra
  2. Flagi i flagi trwałe
  3. Podpolecenia i grupy poleceń
  4. Dystrybucja narzędzi CLI
← Powrót do Go Academy