ממשקי שורת פקודה (CLI) עדיין פופולריים אפילו מול ממשקי משתמש גרפיים (GUI) והרכיבים החזותיים האינטראקטיביים שלהם. CLIs עדיין בשימוש בשל הפשטות, הקלות, המהירות ופחות המשאבים הנדרשים להגדרת יישום CLI.

רוב יישומי ה-CLI פועלים על הטרמינל או שורת הפקודה של מערכת ההפעלה, ומגבירים את הגמישות מבלי לדרוש משאבים רבים כמו ממשקי GUI.

אתה יכול לבנות CLI עם שפות פופולריות מ-Python ועד C++, Rust ו-Go. רוב השפות מספקות חבילות לבניית אפליקציות CLI ללא תלות חיצונית.

עבור אל יישומי שורת הפקודה

אחד ממקרי השימוש המיועדים לשפת התכנות Go הוא בניית CLIs אינטראקטיביים בעלי ביצועים. עם השנים גו צברה אחיזה בתחום.

Go מפעיל אפליקציות CLI פופולריות כמו Docker CLI, Hugo, GitHub CLI ועוד. Go היא אחת השפות המועדפות לבניית אפליקציות CLI, בהתחשב בתמיכה מהשורה הראשונה שלה בהן לצד הביצועים שלה.

יש דֶגֶל חבילה לניתוח שורת פקודה, אך היא חסרה פונקציונליות רבה שתצטרך לבנות אפליקציות שורת פקודה מודרניות. כמו כן, פיתוח אפליקציות CLI עם ה דֶגֶל החבילה יכולה להיות מורכבת ככל שגודל האפליקציה שלך גדל ואתה משלב תכונות נוספות.

למערכת האקולוגית של Go יש הרבה חבילות מכובדות לבניית CLI, עם תכונות שיעזרו להפחית את זמן הפיתוח שלך.

instagram viewer

חבילת הקוברה

קוֹבּרָה היא אחת החבילות הפופולריות ביותר לבניית CLIs במערכת האקולוגית של Go ומחוצה לה. Cobra היא חבילה ליצירת אפליקציות CLI אינטראקטיביות ומודרניות בכל סביבה.

Cobra מספקת ממשק פשוט לבניית CLIs בסטנדרט תעשייתי בדומה לכלי Go ו-Git. Cobra מפעילה יישומי CLI רבים שאיתם יצרת אינטראקציה, כולל Docker, Kubernetes, Twitch, Hugo ושלל אחרים.

Cobra הוא כלי קל לשימוש, מבוסס פקודות משנה. הוא תומך בדגלים תואמי POSIX, פקודות משנה מקוננות ודגלים גלובליים, מקומיים ומדורגים.

Cobra גם תומכת בהצעות חכמות, יצירת עזרה אוטומטית, זיהוי דגלים וכינויי פקודות. זה מאפשר השלמה אוטומטית של מעטפת על Bash, Powershell, Fish ו-Zsh, ושילוב עם צֶפַע חבילה לאפליקציות 12 גורמים.

הפעל פקודה זו בטרמינל של ספריית העבודה שלך כדי להתקין את הגרסה העדכנית ביותר של חבילת Cobra והתלות שלה.

ללכת קבל -u github.com/spf13/cobra@latest

Cobra מספקת אפליקציית CLI לפיתוח מהיר וקל יותר. חבילת Cobra—cli מייצרת קוד לוח שאתה יכול להגדיר להוספת פקודות חדשות לאפליקציה שלך ללא טרחה.

הפעל פקודה זו בטרמינל של ספריית העבודה שלך כדי להתקין את הגרסה העדכנית ביותר של חבילת Cobra-cli.

ללכת התקן github.com/spf13/cobra-cli@latest

תצטרך להגדיר את משתנה GOPATH לספריית העבודה שלך כדי להשתמש במחולל Cobra (Cobra-cli) ובכלי שורת הפקודה Go אחרים.

לאחר התקנה מוצלחת, אתה יכול לאתחל אפליקציית Cobra בפרויקט שלך עם init פקודה.

cobra-cli init

לאחר אתחול אפליקציית Cobra, תוכל להשתמש ב- לְהוֹסִיף תת-פקודה עם ה- קוברה-קלי פקודה כדי ליצור ולהוסיף פקודה חדשה לאפליקציית Cobra שלך.

cobra-cli הוסף פקודה חדשה

הפקודה יוצרת קובץ חדש עם הקוד שאתה צריך עבור הפקודה. אתה יכול לערוך את הקובץ על סמך הפעולה שלך.

להלן פונקציית מטפל פקודה פשוטה עבור פקודה שנוצרה עם הפקודה Cobra-cli.

יְבוּא (
"fmt"
"github.com/spf13/cobra"
"עֵץ"
"strconv"
)

// פקודה שנוצרה על ידי קוברה

// newCmd מייצג את הפקודה החדשה
var newCmd = &cobra. פקודה {
השתמש ב: "newCmd",
קצר: "תיאור ה-newCmd שאתה מציין",
ארוך: `תיאור ארוך יותר המשתרע על פני מספר שורות וכנראה מכיל דוגמאות
ושימוש בשימוש בפקודה שלך. לדוגמה:
קוברה היא ספריית CLI ל Go שמעצים יישומים.
יישום זה הוא כלי ליצירת הקבצים הדרושים
כדי ליצור במהירות יישום Cobra.`,

לָרוּץ: func(cmd *קוברה. פקודה, args []חוּט) {
אםלן(ארגס) < 1 {
עֵץ. קטלני ("אין ויכוחים נוספים")
}
ארגומנטים := args[0]
fmt. Println (טיעונים)
}
}

funcinit() {
rootCmd. AddCommand (newCmd)

// כאן תגדיר את הדגלים והגדרות התצורה שלך.

// Cobra תומך ב-Peristent Flags שיפעלו עבור פקודה זו
// וכל פקודות המשנה, למשל:
// newCmd. PersistentFlags().String("foo", "", "עזרה עבור foo")

// Cobra תומך בדגלים מקומיים שיפעלו רק כאשר הפקודה הזו
// נקרא ישירות, למשל:
// newCmd. Flags().BoolP("toggle", "t", false, "הודעת עזרה ל-toggle")
}

אתה יכול לגשת לטיעונים נוספים באמצעות ה args ארגומנט של הפונקציה. הפונקציה שלמעלה משתמשת ב- אם הצהרה כדי לבדוק אם יש ארגומנט נוסף מהמסוף ומדפיס את הארגומנט.

חבילת CLI

חבילת Cli היא חבילה מינימליסטית בנושא אקספרסיביות לבניית אפליקציות CLI מהירות וניתנות להפצה ב-Go.

חבילת Cli תומכת בארגומנטים של שורת הפקודה, דגלים ופקודות משנה עם קטגוריות. יש לו פונקציונליות כדי לספק אפשרויות קצרות, השלמות בש, עזרה שנוצרה וניהול גרסאות.

חבילת Cli פועלת הדדית עם המובנה של Go דֶגֶל ו הֶקשֵׁר חבילות, ואתה יכול להשתמש ברוב התכונות ב- דֶגֶל חבילה עם ה-Cli.

הפעל את הפקודות הללו בטרמינל של ספריית העבודה שלך כדי להוסיף את חבילת Graphql-go והתלות שלה לפרוייקט שלך.

ללכת קבל github.com/urfave/cli

כך תוכל להוסיף פקודה לאפליקציית CLI שלך עם חבילת Cli.

חֲבִילָה רָאשִׁי

יְבוּא (
"fmt"
"עֵץ"
"os"

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

funcרָאשִׁי() {
אפליקציה := &cli. אפליקציה {
שם: "חָדָשׁ",
שימוש: "עשה א חָדָשׁ פקודה עם ה-Cli חֲבִילָה",
פעולה: func(*קלי. הֶקשֵׁר)שְׁגִיאָה {
fmt. Println("הנה א חָדָשׁ פקודה")
לַחֲזוֹראֶפֶס
},
}

אם טעות := אפליקציה. הפעלה (OS. Args); טעות != אֶפֶס {
עֵץ. קטלני (שגיאה)
}
}

בתוך ה רָאשִׁי פונקציה, ה אפליקציה משתנה הוא מופע של אפליקציית Cli ושל האפליקציה פעולה השדה הוא פונקציית המטפל של האפליקציה. הנה ה חָדָשׁ הפקודה תדפיס את הטקסט מהפונקציה או תחזיר שגיאה אם ​​יש שגיאות מהאפליקציה.

חבילת Cli מועילה לפרויקטים קטנים יותר ללא מורכבות או תכונות רבות.

חבילת Go-Arg

חבילת Go-arg היא חבילה מבוססת מבנה לניתוח ארגומנטים של CLI ב-Go. עם חבילת Go-arg, אתה יכול להכריז על מבנים עבור ארגומנטים של CLI ולפעול על הארגומנטים כמבני נתונים רגילים של Go. חבילת Go-arg מספקת ארגומנטים נדרשים, ארגומנטים מיקוםיים, משתני סביבה, מחרוזות שימוש, ערכי ברירת מחדל ותכונות רבות אחרות.

החבילה תומכת בסוגים בסיסיים כמו מספר שלם, נקודה צפה, מחרוזת ובוליאן. זה גם תומך בסוגים מורכבים יותר כמו כתובות אתרים, משכי זמן, כתובות דוא"ל, כתובות MAC, מצביעים, פרוסות, מפות וה- כל סוּג.

אתה יכול להשתמש ב לקבל הפקודה כדי להוסיף את חבילת Go-arg לתלות של החבילה שלך.

ללכת קבל github.com/alexflint/ללכת-ארג

חבילת Go-arg פשוטה ואינטואיטיבית לשימוש. כך תוכל לקבל ארגומנטים משורת הפקודה ולהדפיס אותם למסוף שורת הפקודה.

funcרָאשִׁי() {
var args struct {
פו חוּט
בַּר bool
}
arg. MustParse(&args)
fmt. Println (args. פו, טוען. בַּר)
}

ה args struct הוא מופע ה-struct עבור יישום CLI. ה MustParse המתודה מנתחת את הארגומנטים משורת הפקודה לתוך מופע ה-struct.

אתה יכול בקלות להפעיל את התוכנית עם לָרוּץ הפקודה וציין את הארגומנטים אחרי שם הקובץ.

ללכת לרוץ הראשי.ללכת --foo=שלום --בר

אתה יכול גם להשתמש ב לִבנוֹת פקודה לבנות את האפליקציה שלך לקובץ הפעלה לפני הפעלת קובץ ההפעלה וציון הארגומנטים.


ללכת לבנות ראשי.ללכת
./main --foo=hello --bar

יש הבדלים משמעותיים בין GUIs ו-CLIs שתצטרך לשקול

במהלך הפיתוח, אם אתה צריך לבחור בין בניית CLI או GUI עבור המשתמשים שלך, תצטרך לשקול גורמים רבים כדי לבחור.

שימוש ב-CLI על פני ממשקי GUI מביא לתוכניות מהירות יותר, אוטומציה קלה וניצול נמוך יותר של משאבים. אם אחד מהיתרונות הללו אינו חיוני ליישום שלך, ייתכן שיהיה לך טוב יותר עם GUI מכיוון שהם פופולריים יותר בקרב משתמשים כלליים.