ما هو Air ولماذا تحتاجه؟
Air هي أداة قوية لمطوري Go توفر التحميل المباشر (live reload) للتطبيقات. إذا سبق لك كتابة تطبيقات ويب بلغة Go، فأنت تعلم كم هو مرهق إيقاف الخادم يدويًا (Ctrl+C) وإعادة ترجمة المشروع (go build) وتشغيله مرة أخرى في كل مرة. Air يؤتمت هذه العملية: فهو يراقب التغييرات في الكود المصدري لمشروعك ويعيد بناء التطبيق وإعادة تشغيله تلقائيًا عند أي حفظ للملف.
تم إنشاء Air بواسطة فريق Cosmos (المعروف سابقًا باسم Tendermint) وهو مكتوب بلغة Go نفسها. إنها ليست مكتبة بالمعنى التقليدي (لا تقوم باستيرادها في الكود الخاص بك)، بل هي أداة سطر أوامر تعمل بالتوازي مع تطبيقك.
لماذا تحتاج Air؟
- تسريع التطوير: يوفر الدقائق التي تُهدر في إعادة الترجمة اليدوية.
- الراحة: فقط احفظ الملف وسيتم إعادة تشغيل الخادم تلقائيًا.
- دعم جميع مشاريع Go: يعمل مع خوادم الويب، أدوات CLI، بوتات Telegram، وأي تطبيقات أخرى.
- إعدادات مرنة: يمكنك تخصيص تجاهل المجلدات، التأخيرات، الأوامر الإضافية، وغيرها الكثير.
Air مفيد بشكل خاص عند تطوير تطبيقات الويب باستخدام أطر عمل مثل Gin أو Echo أو Fiber أو net/http القياسي، حيث كل تعديل يتطلب إعادة تشغيل الخادم.
تثبيت Air
يمكن تثبيت Air بعدة طرق. اختر الأنسب لنظامك.
الطريقة 1: التثبيت عبر go install (موصى به)
أسهل طريقة هي استخدام مدير حزم Go القياسي. تأكد من أن لديك Go الإصدار 1.16 أو أعلى.
go install github.com/air-verse/air@latest
بعد ذلك، سيتم وضع الملف الثنائي air في المجلد $GOPATH/bin (عادةً ~/go/bin). تأكد من إضافة هذا المجلد إلى متغير البيئة PATH.
الطريقة 2: التثبيت عبر Homebrew (macOS / Linux)
إذا كنت تستخدم macOS أو Linux مع Homebrew، التثبيت بسيط:
brew install air
الطريقة 3: التثبيت عبر سكريبت (Linux / macOS / WSL)
يمكنك استخدام سكريبت التثبيت:
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s
الطريقة 4: التثبيت عبر Docker
لمن يفضلون Docker:
docker run -it --rm -v "$PWD":/app -w /app cosmtrek/air
التحقق من التثبيت
بعد التثبيت، تحقق من أن Air يعمل:
air -v
يجب أن ترى إصدار الأداة، مثل: v1.52.3
بداية سريعة مع مثال كود
لنقم بإنشاء تطبيق ويب بسيط بلغة Go وإعداد التحميل المباشر له باستخدام Air.
الخطوة 1: إنشاء مشروع جديد
mkdir my-air-app
cd my-air-app
go mod init my-air-app
الخطوة 2: كتابة خادم HTTP بسيط
أنشئ ملف main.go:
package main
import (
"fmt"
"net/http"
"time"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "مرحبًا بك في Air! الوقت الحالي: %s", time.Now().Format("15:04:05"))
})
fmt.Println("الخادم يعمل على http://localhost:8080")
http.ListenAndServe(":8080", nil)
}
الخطوة 3: تهيئة إعدادات Air
air init
هذا الأمر ينشئ ملف .air.toml في جذر المشروع بالإعدادات الافتراضية. يمكنك تعديله لاحقًا حسب احتياجاتك.
الخطوة 4: تشغيل Air
air
سترى مخرجات مشابهة لهذه:
__ _ ___
/ /\ | | | |_)
/_/--\ |_| |_