لغة Go (Golang) للخدمات المصغرة السحابية (Cloud-Native Microservices)
لغة Go (Golang) للخدمات المصغرة السحابية (Cloud-Native Microservices)
احترف لغة البنية التحتية الحديثة. ستأخذك هذه الدورة من مستوى المبتدئ إلى الخبير في Go، مع التركيز على بناء خدمات مصغرة (microservices) عالية الأداء ومتزامنة باستخدام المكتبة القياسية فقط. تعلم أسرار اللغة المفضلة لـ Docker و Kubernetes، واحترف الـ Goroutines، وابنِ واجهات برمجة تطبيقات (APIs) جاهزة للإنتاج دون الاعتماد على "سحر" إطارات العمل الثقيلة. نركز في هذه الدورة على الأداء الخام، والوضوح، والنظام البيئي السحابي.
الدروس
- فلسفة Go: لماذا نختار Go للبنية التحتية؟
- إعداد بيئة عمل Go
- تشريح برنامج Go
- المتغيرات والأنواع الأولية
- التحكم في التدفق: If و Else و Switch
- الحلقات التكرارية في Go: حلقة For فقط
- الدوال: قيم إرجاع متعددة
- المؤشرات (Pointers): لا تخف منها
- الـ Structs: تنظيم البيانات
- الـ Methods: إضافة سلوك للـ Structs
- الـ Interfaces: قوة تعدد الأشكال
- المصفوفات والـ Slices: القوائم الديناميكية
- الـ Maps: تخزين سريع للبيانات (مفتاح-قيمة)
- معالجة الأخطاء: الطريقة الصريحة
- الـ Defer: تنظيف الموارد
- مقدمة إلى net/http
- الطلب والاستجابة: الأساسيات
- JSON: الترميز وفك التشفير
- التوجيه: بناء موجه مخصص
- البرمجيات الوسيطة (Middleware): اعتراض الطلبات
- المشروع: تحدي HTTP الصباحي
- الـ Goroutines: التزامن خفيف الوزن
- الـ Channels: التواصل بين الـ Goroutines
- الـ Buffered Channels ومعدل نقل البيانات
- جملة Select: التعامل مع قنوات متعددة
- الـ Context: الإلغاء والمواعيد النهائية
- الـ WaitGroups: انتظار الـ Goroutines
- الـ Mutexes: حماية الحالة المشتركة
- نمط المستودع (Repository Pattern) في Go
- حقن التبعية بدون إطارات عمل
- اختبار الوحدات: الطريقة المدمجة
- الاختبارات المعتمدة على الجداول: معيار Go
- المحاكاة (Mocking) باستخدام الـ Interfaces
- الإيقاف اللطيف: التنظيف عند الخروج
- استخدام Docker مع خدمات Go المصغرة
- لغة Go ومتغيرات البيئة
- التسجيل (Logging) من أجل قابلية المراقبة
- الاتصال بقاعدة بيانات PostgreSQL
- تنفيذ الاستعلامات وقراءة النتائج
- معاملات قاعدة البيانات في Go
- استراتيجيات إصدار واجهات برمجة التطبيقات (API Versioning)
- فحوصات الحالة: الحيوية والجاهزية
- المقاييس (Metrics) مع Prometheus
- برمجية وسيطة لـ CORS
- المصادقة: تطبيق JWT
- تحديد معدل الطلبات للحماية
- العمل مع Redis: التخزين المؤقت
- الحزم الداخلية مقابل الخارجية
- تحليل الأداء باستخدام pprof
- اختبارات الأداء (Benchmarks): قياس سرعة الكود
- تضمين الملفات في الملفات التنفيذية
- الـ Reflection: متى تستخدمه (ومتى تتجنبه)
- الأنماط العامة (Generics) في Go (v1.18+)
- تحدي HTTP الصباحي: المستوى الثاني
- ملفات YAML للنشر على Kubernetes
- CI/CD لـ Go باستخدام GitHub Actions
- التحليل الساكن وتدقيق الكود (Linting)
- المشروع النهائي: بناء طابور مهام موزع
- تحسين ملفات Go التنفيذية للإنتاج
- الخاتمة: طريق الاحتراف