כיצד לייעל את פיתוח ה-Go שלך עם Makefiles

כיצד לייעל את פיתוח ה-Go שלך עם Makefiles
קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף. קרא עוד.

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





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





איפור של סרטון היום גלול כדי להמשיך עם התוכן

הבנת Makefiles

  הלוגו הפופולרי של makefile

ההבנה של אופן הפעולה של Makefiles היא חיונית לארגון יעיל ואוטומציה של בניית הפרויקט שלך.





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

יעדים מייצגים את קבצי הפלט או הפעולות הרצויות עבור Makefile. יעדים יכולים להיות שמות קבצים או תוויות שמתארות את המשימה. לדוגמה, יעד בשם לְנַקוֹת עשוי להסיר קבצים מיותרים שנוצרו במהלך תהליך הבנייה.



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

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





כל פקודה חייבת להתחיל בתו טאב לצורך זיהוי.

 build: main.go utils.go 
    go build -o myapp main.go utils.go

clean:
    rm myapp

ב-Makefile לעיל, ישנם שני יעדים: לִבנוֹת ו לְנַקוֹת .





ה לִבנוֹת היעד תלוי ב main.go ו utils.go קבצים, והפקודה הקשורה פועלת במהדר Go כדי לבנות קובץ הפעלה בשם myapp .

מצד שני, ה לְנַקוֹת המטרה מסירה את myapp בר הפעלה.

כדי להרכיב את קוד ה-Go שלך, נווט אל ספריית העבודה והפעל את לעשות לבנות פקודה.

 make build 

הכלי Make יטפל בתהליך הקומפילציה, ויאפשר לך להתמקד בכתיבת קוד.

הגדרת Makefiles עבור פרויקטי ה-Go שלך

אתה יכול להשתמש ב-Makefiles כדי לבנות ולהדר את התוכניות שלך, לבצע בדיקות קוד ובדיקות איכות, ולשילוב ופריסה מתמשכים.

הפעל פקודה זו כדי ליצור Makefile עבור הפרויקט שלך בספריית השורש. ה Makefile ישמש כנקודת הכניסה להגדרת משימות הבנייה שלך.

 touch Makefile 

ל-Makefile שלך ​​לא אמורות להיות הרחבות כלשהן.

כיצד לתזמן דוא"ל ב- outlook mac

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

להלן דוגמה של Makefile המשמשת ככלי אוטומציה לבנייה עבור הפרויקט שלך:

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean

# Targets
build:
    $(GOBUILD) -o app .

test:
    $(GOTEST) ./...

clean:
    $(GOCLEAN)
    rm -f app

אתה יכול להתאים אישית את Makefile שלך ​​בהתאם לצרכים הספציפיים של הפרויקט שלך.

הנה גרסה שונה של Makefile להעברת דגלים ומשתני סביבה נוספים במהלך הבדיקה או תהליך הבנייה של הפרויקט שלך:

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v

# Targets
build:
    $(GOBUILD) -o $(BINARY_NAME) .

test:
    $(GOTEST) $(TEST_FLAGS) ./...

clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

ב-Makefile זה, ישנם שני משתנים חדשים בשם BINARY_NAME ו TEST_FLAGS . ה BINARY_NAME משתנה מציין את השם של קובץ ההפעלה שנוצר.

ה TEST_FLAGS משתנה מאפשר לך לציין דגלים נוספים בעת הפעלת בדיקות (במקרה זה, ה הדגל מאפשר פלט מילולי במהלך ביצוע הבדיקה).

Makefiles מספק גם דרך קלה להגדיר משתני סביבה ודגלים עבור הפרויקט שלך.

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

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64

# Targets
build:
    $(GOBUILD) -o $(BINARY_NAME) .

test:
    $(GOTEST) $(TEST_FLAGS) ./...

clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

ב-Makefile המעודכן, ישנם שני משתנים חדשים עבור GOOS ו GOARCH משתני סביבה המאפשרים לך לציין את מערכת ההפעלה והארכיטקטורה היעד עבור המבנה שלך (במקרה זה, ה GOOS המשתנה מוגדר ל לינוקס ו GOARCH ל amd64 כדי לבנות את הפרויקט עבור לינוקס על ארכיטקטורת x86-64).

זכור להתאים את המשתנים הללו בהתאם לדרישות הספציפיות של הפרויקט שלך.

אתה יכול להתייחס ל לך תיעוד לרשימת הערכים הנתמכים עבור GOOS ו GOARCH אם אתה צריך לבנות עבור פלטפורמה אחרת.

בניית אוטומציה עם Makefiles

Makefiles שימושיים גם להידור קוד, יצירת תיעוד וניהול תלות.

עם Makefiles, אתה יכול להפוך את זמן ההידור לאוטומטי, ולחסוך לך זמן ומאמץ.

הנה Makefile שמרכיב תוכנית Go:

 # Define variables 
GOCMD = go
GOBUILD = $(GOCMD) build
BINARY_NAME = myprogram

# Default target
all: build

# Build target
build:
    $(GOBUILD) -o $(BINARY_NAME)

# Clean target
clean:
    rm -f $(BINARY_NAME)

ה-Makefile מגדיר משתנים כמו ה- GOCMD (הפקודה Go) ו GOBUILD (פקודת הבנייה). ה לִבנוֹת המטרה מפעילה את לך לבנות הפקודה כדי להרכיב את תוכנית ה-Go שלנו ולהפיק את הבינארי עם השם שצוין ( התוכנית שלי במקרה הזה). ה לְנַקוֹת target מסיר את הבינארי שנוצר מהפרויקט.

  makefile בפעולה לבניית תוכניות

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

 # Define variables 
GOCMD = go
GOBUILD = $(GOCMD) build
GOGET = $(GOCMD) get
BINARY_NAME = myprogram

# Default target
all: build

# Build target
build:
    $(GOBUILD) -o $(BINARY_NAME)

# Install dependencies
deps:
    $(GOGET) -u

# Clean target
clean:
    rm -f $(BINARY_NAME)

ל-Makefile יש א מחלקה יעד שמשתמש ב- לך לקבל פקודה להתקנה או עדכון של תלות בפרויקט. אתה יכול לרוץ לעשות deps כדי להתקין את התלות של הפרויקט שלך.

Makefiles יכול להפוך את יצירת התיעוד לאוטומטי ולשפר את מסמכים כתהליך קוד .

הנה איך אתה יכול הפק תיעוד אוטומטי עבור פרויקטי ה-Go שלך עם הכלי godoc ו-Makefile:

 # Define variables 
GODOC = godoc
DOCS_DIR = docs

# Default target
all: docs

# Generate documentation
docs:
    $(GODOC) -html -dir . > $(DOCS_DIR)/index.html

# Clean target
clean:
    rm -rf $(DOCS_DIR)

ב-Makefile, ה- מסמכים המטרה מפעילה את godoc פקודה עם ה -html דגל כדי ליצור תיעוד HTML עבור קוד ה-go שלך ושומר את התיעוד ב- מסמכים מַדרִיך.

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

Makefiles שימושיים לעבודה עם מערכות הפעלה מבוססות יוניקס

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

יתרון נוסף של Makefiles הוא התאימות שלו למערכות מבוססות יוניקס. Make הוא כלי עזר נתמך נרחב במערכות הפעלה מבוססות יוניקס, כולל לינוקס ו-macOS, מה שהופך אותו לכלי נייד ואמין עבור מפתחים.