0Pricing
Go Academy · درس

أساسيات Cobra

الأمر الجذر وRun وArgs وإنشاء المساعدة

أساسيات Cobra درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.

ما Cobra؟

Cobra هي مكتبة Go الأكثر شيوعًا لبناء تطبيقات CLI. فهي توفر الأوامر، والخيارات، والأوامر الفرعية، وإنشاء تعليمات المساعدة، والإكمال التلقائي للصدفة، والتحقق من الوسائط.

تثبيت Cobra

أضف cobra كتابعية، ويمكنك اختياريًا استخدام مولّد CLI:

go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myapp

الأمر الجذر

يحتوي كل تطبيق Cobra على أمر جذر. عرّفه باستخدام Use ووصف Short ودالة 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() }

بنية cobra.Command

الحقول الأساسية: Use (اسم الأمر وملخّصه)، وShort (وصف في سطر واحد)، وLong (تعليمات مساعدة مفصّلة)، وRun (تنفيذ الأمر)، وRunE (إرجاع خطأ).

استخدام RunE لتمرير الأخطاء

استخدم RunE بدلًا من Run لإرجاع الأخطاء. تطبع Cobra الخطأ وتخرج تلقائيًا برمز غير صفري.

var rootCmd = &cobra.Command{
    RunE: func(cmd *cobra.Command, args []string) error {
        return doWork()
    },
}

إضافة أوامر فرعية

أنشئ الأوامر الفرعية على هيئة قيم cobra.Command منفصلة، وأضفها إلى الأمر الجذر باستخدام AddCommand:

var serveCmd = &cobra.Command{
    Use:   "serve",
    Short: "Start the server",
    RunE:  runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }

بنية مشروع Cobra

التنسيق الاصطلاحي: دليل cmd/ الذي يحتوي على ملف لكل أمر فرعي، بالإضافة إلى root.go. لا يستدعي main.go سوى cmd.Execute().

cmd/
  root.go    // rootCmd definition
  serve.go   // serveCmd
  migrate.go // migrateCmd
main.go

التحقق من الوسائط

استخدم أدوات التحقق المضمّنة مثل cobra.ExactArgs وMinimumNArgs، أو دالة 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
    },
}

المساعدة المُنشأة تلقائيًا

تنشئ Cobra تلقائيًا --help و-h لكل أمر، بالإضافة إلى أمر فرعي باسم help. ويأتي النص من Use وShort وLong والخيارات.

الإكمال التلقائي للصدفة

تنشئ Cobra نصوص الإكمال التلقائي لـ bash وzsh وfish وPowerShell مباشرةً باستخدام rootCmd.GenBashCompletion أو الأمر الفرعي المضمّن completion.

التكامل مع Viper

اجمع بين Cobra وViper لإدارة الإعدادات: ترتبط الخيارات المعرّفة باستخدام Cobra بمفاتيح Viper، بحيث يمكن أن تأتي القيم من الخيارات أو متغيرات البيئة أو ملفات الإعداد.

اختبار سريع

ما الفرق بين cobra.Command.Run وRunE؟

خلاصة: أساسيات Cobra

النقاط الأساسية:

  • يمثل cobra.Command مع Use/Short/RunE لبنة البناء الأساسية
  • استخدم rootCmd.AddCommand(subCmd) لإنشاء أوامر هرمية
  • استخدم cobra.ExactArgs/MinimumNArgs للتحقق من الوسائط
  • تُنشأ المساعدة والإكمال التلقائي تلقائيًا

الأسئلة الشائعة

هل درس «أساسيات Cobra» مجاني؟

نعم — نص درس «أساسيات Cobra» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات Cobra»؟

الأمر الجذر وRun وArgs وإنشاء المساعدة تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟

لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات Cobra»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟

نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات Cobra
  2. الخيارات والخيارات المستمرة
  3. الأوامر الفرعية ومجموعات الأوامر
  4. توزيع أدوات CLI
← العودة إلى Go Academy