الفصل 1: مقدمة عن إعادة التحميل الحية
ما هي إعادة التحميل الحية؟
إعادة التحميل الحية هي ميزة تُمكِّن بيئة التطوير الخاصة بك من مراقبة التغييرات في الكود الخاص بك وإعادة تحميل تطبيقك تلقائيًا. عند حفظ ملف، يكتشف أداة إعادة التحميل الحية التغيير، تعيد بناء التطبيق، وتُعيد تشغيله. يُوفِّر هذا الأمر لك من العملية اليدوية لإيقاف الخادم، إعادة بناء التطبيق، وبدء تشغيله مرة أخرى بعد كل تغيير.
فوائد إعادة التحميل الحية لتطوير Go
إعادة التحميل الحية يمكن أن تسرِّع بشكل كبير عملية التطوير. بالنسبة لمطوري Go، الذين يعتادون تجميع كودهم قبل تشغيله، تعني إعادة التحميل الحية تحسين سير العمل مع ردود فعل فورية. من بين الفوائد:
- زيادة الإنتاجية: يمكن للمطورين البقاء في الزون دون انقطاع، حيث لا يحتاجون إلى إجراء إعادة بناء يدوية.
- توفير الوقت: إعادة التحميل الحية تقلل من وقت الانتظار لرؤية التغييرات في الكود مع reflected في تطبيق التشغيل.
- كشف الأخطاء: إعادة البناء وإعادة التشغيل الفورية تُسمح للمطورين بكشف الأخطاء وتصحيحها بشكل أسرع.
- تسهيل سير العمل: يندمج بشكل سلس في عملية التطوير، مما يجعلها أكثر سلاسة وفعالية.
الفصل 2: ما هو Air؟
Air هو أداة سطر أوامر مصممة لتوفير إمكانيات إعادة التحميل الحية لتطبيقات Go. يُراقب التغييرات في رمز المصدر الخاص بك ويُعيد بناء تطبيق Go الخاص بك تلقائيًا. هذا يعني أنه يمكنك التركيز أكثر على تطوير الميزات وأقل على المهام المتكررة.
الميزات
Air يوفر مجموعة من الميزات المناسبة لبيئة تطوير Go الحديثة:
- إعادة البناء التلقائية: يكتشف تغييرات الملفات ويُشغل عمليات إعادة البناء.
- أوامر بناء قابلة للتخصيص: يسمح لك بتخصيص أوامر البناء وفقًا لاحتياجات مشروعك.
- استبعاد الدلائل الخاصة بالدلائل: يسمح لك باختيار الدلائل لاستبعادها من عملية المراقبة.
- دعم للدلائل الجديدة: يمكنه مراقبة الدلائل الجديدة المضافة بعد بدء تشغيل Air.
- سجلات ملونة وقابلة للقراءة: يعزز قراءة السجلات الخرجية بتلوين الألوان.
- مُعاملات واجهة أوامر سطر الأوامر: يمكن تعيين حقول التكوين مباشرة من خلال مُعاملات واجهة أوامر سطر الأوامر لإجراء التعديلات السريعة.
يرجى الرجوع إلى سياق المطور للحصول على قائمة كاملة بالميزات والوظائف المتاحة مع Air.
الفصل 3: تثبيت air
3.1 التثبيت عبر go install
لتثبيت Air باستخدام أداة Go toolchain الإصدار 1.18 أو أعلى:
go install github.com/cosmtrek/air@latest
سيجعل هذا air
متوفرًا في GOPATH/bin
الخاص بك.
3.2 استخدام مشروع install.sh
طريقة أخرى هي من خلال نص تثبيت مُقدم:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
بعد التثبيت، قم بالتحقق من ذلك من خلال تشغيل:
air -v
3.3 تثبيتات خاصة (Docker/Podman ومسار مخصص)
بالنسبة لأولئك الذين يستخدمون Docker أو Podman، يوجد طريقة مبسطة لتضمين Air:
docker run -it --rm \
-w "/path/to/project" \
-v $(pwd):/path/to/project \
-p port:port \
cosmtrek/air
قم بتبديل /path/to/project
بمسار مشروعك و port:port
بتخطيط البورت المطلوب.
بديلًا عن ذلك، لتثبيت مسار مخصص:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/custom/path sh
الفصل 4: تكوين air
لمشروع Go الخاص بك
4.1 فهم تكوين .air.toml
.air.toml
هو ملف التكوين الخاص بـ Air. يسمح لك بتحديد الإعدادات المتعلقة بعملية البناء، ومراقبة الدلائل، وإخراج السجل. إليك نظرة عامة على الأقسام الرئيسية:
-
root
: يحدد دليل العمل لـ Air. -
build
: يحتوي على إعدادات متعلقة بالبناء مثل الأوامر لتشغيلها قبل/بعد البناء، والأمر الرئيسي للبناء. -
tmp_dir
: الدليل الذي يُخزِّن فيه ملفات البناء المؤقتة. -
log
: يكوِّن إعدادات ملف السجل. -
color
: يخصص لون كل جزء من إخراج السجل.
4.2 إنشاء وتعديل ملف التكوين
لإنشاء ملف تكوين .air.toml
الافتراضي، قم بتشغيل:
air init
سيقوم هذا بإنشاء ملف .air.toml
بالإعدادات الافتراضية في الدليل الحالي الخاص بك. يمكنك بعد ذلك تعديله ليتناسب مع متطلبات مشروعك. يمكنك الرجوع إلى air_example.toml
المُقدم في السياق كمرجع.
4.3 الكتابة فوق التكوين باستخدام معاملات سطر الأوامر
للاختبارات السريعة أو التغييرات البسيطة، يمكنك كتابة التكوين في .air.toml
باستخدام معاملات سطر الأوامر. على سبيل المثال:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
تتيح لك هذه المرونة تخصيص سلوك Air بسهولة دون تغيير ملف التكوين.
الفصل 5: تشغيل air
في بيئة التطوير الخاصة بك
6.1 بدء air
في مشروعك
للبدء باستخدام air
في مشروعك، انتقل إلى الدليل الرئيسي لمشروعك في الطرفية الخاصة بك وقم بتنفيذ الأمر air
. إذا كان ملف تكوين .air.toml
موجوداً، سيستخدم air
تلقائياً. وإلا، سيستخدم الإعدادات الافتراضية.
cd /path/to/your_project
air
نصيحة: إذا واجهت مشكلات في الإذن مع البرنامج التنفيذي air
، تأكد من أن لديه أذونات التنفيذ اللازمة (chmod +x $(go env GOPATH)/bin/air
).
6.2 تخصيص أوامر البناء والتشغيل باستخدام air
يمكنك تخصيص أوامر البناء والتشغيل المستخدمة بواسطة air
عن طريق تعديل ملف التكوين .air.toml
، وتحديداً ضمن القسم [build]
. على سبيل المثال، لتغيير أمر البناء وتحديد ملف ثنائي مختلف:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
بالإضافة إلى ذلك، تتيح أنماط البناء المعقدة أساساً للتمكّن من تنفيذ أوامر قبل البناء وبعد البناء على التوالي، باستخدام مصفوفات pre_cmd
و post_cmd
ضمن ملف التكوين.
نصيحة: مثال كامل على تكوين air
6.3 استبعاد الدلائل ومراقبة التغييرات
يتيح air
أيضاً لك استبعاد الدلائل من مراقبة التغييرات، مما يمكن أن يكون مفيداً للدلائل التي تحتوي على محتويات أو اعتمادات لا تحتاج إلى تشغيل إعادة البناء.
لتكوين ذلك، قم بتحديث حقل exclude_dir
في .air.toml
:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
يمكنك أيضاً توجيه air
ليتضمن دلائل إضافية باستخدام include_dir
، أو مراقبة امتدادات ملفات محددة باستخدام include_ext
.
الفصل 6: الاستخدام المتقدم
6.1 إعداد air
مع حاويات Docker
يمكن أن يسهل استخدام air
ضمن حاوية Docker إعدادك للتطوير، خاصةً عند العمل مع الفرق. لتضمين air
في بيئة Docker الخاصة بك، قم بتحديث ملف Dockerfile
الخاص بك لتثبيت air
ونسخ ملف .air.toml
إلى الحاوية:
FROM golang:1.18-alpine AS builder
RUN go install github.com/cosmtrek/air@latest
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
CMD ["air", "-c", ".air.toml"]
6.3 استخدام air
في بيئة Docker-compose
لدمج air
في خدمة يتم إدارتها بواسطة docker-compose
، قم بتعريف خدمة في ملف docker-compose.yaml
الخاص بك:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
تأكد من أن توجيه "volumes" يقوم بتعيين الدليل الخاص بمشروعك بشكل صحيح إلى دليل العمل في الحاوية بحيث يمكن لـ air
اكتشاف تغييرات الملفات.
الفصل 7: استكشاف الأخطاء الشائعة والأسئلة الشائعة
7.1 حل مشكلة command not found: air
إذا واجهت خطأ command not found: air
، فإن ذلك يعني عادة أن البرنامج التنفيذي air
ليس موجودًا في PATH
النظام. لحل هذا، أضف مسار البرامج الثنائية لـ Go إلى متغير البيئة PATH
:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 المشاكل في بيئات WSL
في بيئة نظام تشغيل Windows Subsystem for Linux (WSL)، تأكد من تفادي الأحرف الخاصة في ملف .air.toml الخاص بك. على سبيل المثال، استخدم \\
لتفادي الشرطات العكسية في مسارات الملفات.
7.3 نصائح حول الترجمة الحية بدون تشغيل الثنائيات
إذا كنت ترغب في أن يقوم air
بترجمة تطبيقك Go دون تشغيله، فيُرجى ضبط الـ cmd
في القسم [build]
في ملف .air.toml الخاص بك على أمر بدون تأثير (مثل /bin/true
في أنظمة Unix):
[build]
cmd = "/bin/true"
بهذا الشكل، سيقوم air
بملاحظة تغييرات الملفات وتشغيل عملية الترجمة، لكنه لن يحاول تشغيل الملف الثنائي الناتج.