لا تزال واجهات سطر الأوامر (CLIs) شائعة حتى في مواجهة واجهات المستخدم الرسومية (GUI) ومكوناتها المرئية التفاعلية. لا تزال CLIs قيد الاستخدام نظرًا لبساطتها وسهولة استخدامها وسرعتها وقلة الموارد المطلوبة لإعداد تطبيق CLI.

تعمل معظم تطبيقات CLI على محطة نظام التشغيل أو سطر الأوامر ، مما يزيد من المرونة دون الحاجة إلى العديد من الموارد مثل واجهات المستخدم الرسومية.

يمكنك إنشاء CLIs بلغات شائعة من Python إلى C ++ و Rust و Go. توفر معظم اللغات حزمًا لإنشاء تطبيقات CLI بدون تبعيات خارجية.

تطبيقات Go و Command Line

إحدى حالات الاستخدام المقصودة للغة برمجة Go هي بناء CLIs تفاعلية عالية الأداء. على مر السنين ، اكتسب Go زخمًا في هذا المجال.

يعمل Go على تشغيل تطبيقات CLI الشائعة مثل Docker CLI و Hugo و GitHub CLI والمزيد. Go هي إحدى اللغات المفضلة لإنشاء تطبيقات CLI ، نظرًا لدعمها من الدرجة الأولى لها جنبًا إلى جنب مع أدائها.

هناك علَم حزمة لتحليل سطر الأوامر ، لكنها تفتقر إلى الكثير من الوظائف التي ستحتاجها لإنشاء تطبيقات سطر أوامر حديثة. أيضًا ، يتم تطوير تطبيقات CLI بامتداد علَم يمكن أن تكون الحزمة معقدة مع زيادة حجم التطبيق الخاص بك ودمج المزيد من الميزات.

instagram viewer

يحتوي نظام Go على العديد من الحزم ذات السمعة الطيبة لبناء CLIs ، مع ميزات للمساعدة في تقليل وقت التطوير.

باقة الكوبرا

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

يوفر Cobra واجهة بسيطة لبناء CLIs ذات معايير الصناعة المشابهة لأدوات Go و Git. تشغل Cobra العديد من تطبيقات CLI التي تفاعلت معها ، بما في ذلك Docker و Kubernetes و Twitch و Hugo ومجموعة أخرى.

Cobra هي أداة سهلة الاستخدام تعتمد على الأوامر الفرعية. وهو يدعم العلامات المتوافقة مع POSIX والأوامر الفرعية المتداخلة والأعلام العالمية والمحلية والمتتالية.

تدعم Cobra أيضًا الاقتراحات الذكية وإنشاء التعليمات التلقائية والتعرف على العلامات والأسماء المستعارة للأوامر. يسمح بالإكمال التلقائي للقذيفة على Bash و Powershell و Fish و Zsh ، والتكامل مع أفعى حزمة لتطبيقات 12 عاملاً.

قم بتشغيل هذا الأمر في المحطة الطرفية لدليل العمل الخاص بك لتثبيت أحدث إصدار من حزمة Cobra وتبعياتها.

يذهب get -u github.com/spf13/cobra@latest

يوفر Cobra تطبيق CLI لتطوير أسرع وأسهل. تُنشئ حزمة Cobra— cli رمزًا معياريًا يمكنك تكوينه لإضافة أوامر جديدة إلى تطبيقك دون متاعب.

قم بتشغيل هذا الأمر في المحطة الطرفية لدليل العمل الخاص بك لتثبيت أحدث إصدار من حزمة Cobra-cli.

يذهب قم بتثبيت github.com/spf13/cobra-cli@latest

ستحتاج إلى تعيين متغير GOPATH الخاص بك على دليل العمل الخاص بك لاستخدام مولد Cobra (Cobra-cli) وأدوات سطر أوامر Go الأخرى.

بعد التثبيت الناجح ، يمكنك تهيئة تطبيق Cobra في مشروعك باستخدام فيه يأمر.

cobra-cli init

بعد تهيئة تطبيق Cobra ، يمكنك استخدام ملف يضيف الأمر الفرعي مع كوبرا- CLI أمر لإنشاء وإضافة أمر جديد إلى تطبيق كوبرا الخاص بك.

cobra-cli إضافة newCommand

يقوم الأمر بإنشاء ملف جديد بالرمز الذي تحتاجه للأمر. يمكنك تحرير الملف بناءً على عمليتك.

إليك وظيفة معالج أوامر بسيطة لأمر تم إنشاؤه باستخدام الأمر Cobra-cli.

يستورد (
"FMT"
"github.com/spf13/cobra"
"سجل"
"strconv"
)

// أمر من صنع الكوبرا

يمثل // newCmd الأمر الجديد
فار newCmd = & كوبرا. يأمر {
استخدم: "newCmd" ،
قصير: "وصف Cmd الجديد الذي تحدده" ،
طويل: وصف أطول يمتد على عدة أسطر ومن المحتمل أن يحتوي على أمثلة
واستخدام الأمر الخاص بك. على سبيل المثال:
Cobra هي مكتبة CLI ل الذهاب الذي يمكّن التطبيقات.
هذا التطبيق هو أداة لإنشاء الملفات المطلوبة
لإنشاء تطبيق Cobra بسرعة.`,

يجري: func(كمد * كوبرا. الأمر ، args []خيط) {
لولين(أرغس) < 1 {
سجل. فادح ("لا توجد حجج إضافية")
}
الحجج: = args [0]
FMT. Println (الحجج)
}
}

funcفيه() {
rootCmd. AddCommand (newCmd)

// هنا ستحدد أعلامك وإعدادات التكوين.

// يدعم Cobra الإشارات الثابتة التي ستعمل لهذا الأمر
// وجميع الأوامر الفرعية ، على سبيل المثال:
// newCmd. PersistentFlags (). String ("foo"، ""، "A help for foo")

// يدعم Cobra الأعلام المحلية التي لن تعمل إلا عند صدور هذا الأمر
// يسمى مباشرة ، على سبيل المثال:
// newCmd. الإشارات (). BoolP ("تبديل" ، "t" ، خطأ ، "رسالة تعليمات للتبديل")
}

يمكنك الوصول إلى وسيطات إضافية باستخدام امتداد أرجس حجة الوظيفة. تستخدم الوظيفة أعلاه لو بيان للتحقق مما إذا كانت هناك وسيطة إضافية من المحطة وطباعة الوسيطة.

حزمة CLI

حزمة Cli عبارة عن حزمة مبسطة ذات طابع تعبيري لإنشاء تطبيقات CLI سريعة وقابلة للتوزيع في Go.

تدعم حزمة Cli وسيطات سطر الأوامر والأعلام والأوامر الفرعية مع الفئات. لديها وظائف لتلبية الخيارات القصيرة ، إتمام باش، ولدت المساعدة ، والإصدارات.

حزمة Cli قابلة للتشغيل المتبادل مع Go's المدمج علَم و سياق الحزم ، ويمكنك استخدام معظم الميزات الموجودة في علَم الحزمة مع Cli.

قم بتشغيل هذه الأوامر في المحطة الطرفية لدليل العمل الخاص بك لإضافة حزمة Graphql-go وتبعياتها إلى مشروعك.

يذهب احصل على github.com/urfave/cli

إليك كيفية إضافة أمر إلى تطبيق CLI الخاص بك باستخدام حزمة Cli.

طَرد رئيسي

يستورد (
"FMT"
"سجل"
"نظام التشغيل"

"github.com/urfave/cli/v2"
)

funcرئيسي() {
التطبيق: = & cli. برنامج {
اسم: "جديد",
الاستخدام: "يصنع أ جديد الأمر مع Cli طَرد",
فعل: func(* cli. سياق)خطأ {
FMT. Println ("هنا ملف جديد يأمر")
يعودلا شيء
},
}

لو يخطئ: = التطبيق. تشغيل (os. Args) ؛ يخطئ! لا شيء {
سجل. فادح (يخطئ)
}
}

في ال رئيسي وظيفة برنامج المتغير هو مثيل لتطبيق Cli والتطبيق فعل الحقل هو وظيفة معالج التطبيق. هنا ، جديد يقوم الأمر بطباعة النص من الوظيفة أو إرجاع خطأ إذا كان هناك أي أخطاء من التطبيق.

تعد حزمة Cli مفيدة للمشاريع الصغيرة دون الكثير من التعقيد أو الميزات.

حزمة Go-Arg

حزمة Go-arg هي حزمة قائمة على البنية لتحليل وسيطات CLI في Go. باستخدام حزمة Go-arg ، يمكنك التصريح عن الهياكل لوسائط CLI والعمل على الوسائط باعتبارها هياكل بيانات Go العادية. توفر حزمة Go-arg الوسيطات المطلوبة والوسيطات الموضعية ومتغيرات البيئة وسلاسل الاستخدام والقيم الافتراضية والعديد من الميزات الأخرى.

تدعم الحزمة الأنواع الأساسية مثل الأعداد الصحيحة والنقطة العائمة والسلسلة والمنطقية. كما أنه يدعم أنواعًا أكثر تعقيدًا مثل عناوين URL والمدد الزمنية وعناوين البريد الإلكتروني عناوين MACوالمؤشرات والشرائح والخرائط و أي يكتب.

يمكنك استخدام ال يحصل الأمر لإضافة حزمة Go-arg إلى تبعيات الحزمة الخاصة بك.

يذهب احصل على github.com/alexflint/يذهب-ارج

حزمة Go-arg بسيطة وسهلة الاستخدام. إليك كيفية قبول الوسائط من سطر الأوامر وطباعتها إلى وحدة تحكم سطر الأوامر.

funcرئيسي() {
فار أرجس هيكل {
فو خيط
حاجِز منطقي
}
حج. MustParse (& أرجس)
FMT. برنتلن (أرغس. فو ، أرجس. حاجِز)
}

ال أرجس الهيكل هو مثيل الهيكل لتطبيق CLI. ال MustParse يوزع الأسلوب الوسيطات من سطر الأوامر إلى مثيل البنية.

يمكنك بسهولة تشغيل البرنامج بامتداد يجري الأمر وحدد الوسيطات بعد اسم الملف.

يذهب تشغيل رئيسي.يذهب --foo = hello --bar

يمكنك أيضًا استخدام ملف يبني الأمر لبناء تطبيقك في ملف قابل للتنفيذ قبل تشغيل الملف القابل للتنفيذ وتحديد الوسيطات.


يذهب بناء الرئيسي.يذهب
./main --foo = hello --bar

هناك اختلافات كبيرة بين واجهات المستخدم الرسومية وواجهات CLI التي ستحتاج إلى أخذها في الاعتبار

أثناء التطوير ، إذا كان عليك الاختيار بين إنشاء واجهة سطر أوامر (CLI) أو واجهة مستخدم رسومية (GUI) للمستخدمين ، فستحتاج إلى مراعاة العديد من العوامل لتحديد الاختيار.

يؤدي استخدام CLIs عبر واجهات المستخدم الرسومية إلى برامج أسرع وأتمتة سهلة واستخدام أقل للموارد. إذا لم تكن أي من هذه المزايا مهمة لتطبيقك ، فقد يكون من الأفضل لك استخدام واجهة مستخدم رسومية نظرًا لأنها أكثر شيوعًا بين عامة المستخدمين.