كيفية تبسيط تطوير 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 و الاستخدامات الملفات ، ويتم تشغيل الأمر المرتبط على مترجم Go لإنشاء ملف تنفيذي باسم تطبيقي .

من ناحية أخرى ، فإن ينظف الهدف يزيل تطبيقي تنفيذ.

لتجميع كود Go الخاص بك ، انتقل إلى دليل العمل وقم بتشغيل ملف يبني يأمر.

 make build 

ستتعامل أداة Make مع عملية التجميع ، مما يسمح لك بالتركيز على كتابة التعليمات البرمجية.

إعداد ملفات Makefiles لمشاريع Go الخاصة بك

يمكنك استخدام Makefiles لإنشاء برامجك وتجميعها ، وإجراء اختبارات التعليمات البرمجية وفحوصات الجودة ، وللتكامل والنشر المستمر.

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

 touch Makefile 

يجب ألا يحتوي ملفك على أي امتدادات.

بعد إنشاء 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 لبناء مشروع Linux على معمارية 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) و جوبيلد (أمر البناء). ال يبني الهدف يستدعي اذهب للبناء الأمر لتجميع برنامج Go الخاص بنا وإنتاج الملف الثنائي بالاسم المحدد ( برنامجي في هذه الحالة). ال ينظف الهدف يزيل الملف الثنائي الذي تم إنشاؤه من المشروع.

  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 على ملف قسم الهدف الذي يستخدم إذهب احضر الأمر لتثبيت أو تحديث تبعيات المشروع. يمكنك الجري جعل الأقسام لتثبيت تبعيات مشروعك.

يمكن لملفات 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 ، ملف المستندات الهدف يستدعي جودوك الأمر مع -لغة البرمجة لإنشاء وثائق HTML لرمز go الخاص بك وحفظ الوثائق في ملف المستندات الدليل.

ستقوم بتشغيل ملف عمل مستندات الأمر لإنشاء وثائق محدثة لمشروع Go الخاص بك.

ملفات Makefiles مفيدة للعمل مع أنظمة التشغيل المستندة إلى Unix

من خلال الاستفادة من مرونة ملفات Makefiles ، يمكنك تحديد أوامر إنشاء مخصصة وتنفيذ المهام المعقدة في غضون دقائق. Makefile يوفر الوقت ويضمن الاتساق والتكاثر عبر بيئات البناء.

ميزة أخرى لـ Makefiles هي توافقها مع الأنظمة المستندة إلى Unix. Make هي أداة مدعومة على نطاق واسع على أنظمة التشغيل المستندة إلى Unix ، بما في ذلك Linux و macOS ، مما يجعلها أداة محمولة وموثوقة للمطورين.