Skip to content

تطوير منصة تحليل بيانات حركة المرور باستخدام Go - مشروع عملي

نظرة عامة

يتطلب منك هذا المشروع العملي العمل على أساس مستند متطلبات منتج (PRD) حقيقي، واستخدام لغة Go لبناء منصة لتحليل بيانات حركة المرور. يختلف اتجاه هذا المشروع عن أنظمة الإضافة والحذف والتعديل السابقة - حيث ستحتاج إلى بناء سلسلة بيانات كاملة من "استيعاب البيانات ← التجميع ← التنبيه ← التصور". هذا النوع من منتجات البيانات شائع جداً في سيناريوهات إنترنت الأشياء والمراقبة وتحليل العمليات.

هذا هو مشروع Stage 2 التطبيقي الشامل، وهو أيضاً أول تعرض لك للغة Go. لا تقلق، مع أساسك السابق في JavaScript / TypeScript، لن يكون تعلم Go صعباً - التركيز على فهم أفكار تصميم سلسلة البيانات.

المعارف المسبقة

قبل البدء في هذا المشروع، يجب أن تكون قد أتقنت المحتوى التالي:

أهداف التعلم

بعد إكمال هذا المشروع العملي، ستتمكن من:

  1. قراءة مستند PRD واستخراج قائمة مهام التطوير لمنتجات البيانات
  2. استخدام Go (Gin أو Fiber) لبناء خدمة API خلفية
  3. تصميم سلسلة كاملة من استيعاب البيانات والتجميع داخل النوافذ الزمنية والتنبيهات
  4. الحفاظ على توافق البيانات الخلفية مع لوحة المعلومات الأمامية
  5. إكمال الاختبار الشامل من طرف إلى طرف وتسليم نموذج أولي لمنتج بيانات قابل للعرض

مقدمة المشروع

المنتج الذي ستبنيه هو منصة Go لتحليل بيانات حركة المرور:

الوحدةالمسؤولية
استيعاب البياناتاستقبال أحداث حركة المرور الأولية وتخزينها
تجميع البياناتحساب الاتجاهات ومؤشرات الازدحام حسب النوافذ الزمنية
التنبيهاتإنشاء سجلات التنبيهات بناءً على القواعد
لوحة المعلوماتعرض رسوم الاتجاهات والتصنيفات وقائمة التنبيهات في الواجهة الأمامية

مدخل PRD

مستند متطلبات هذا المشروع متاح على GitHub: عرض PRD

الجزء الأول: تحليل المتطلبات

1.1 قراءة PRD

افتح مستند PRD، وركز على الإجابة عن الأسئلة التالية:

  • ما هو مصدر البيانات؟ ما هي الحقول الموجودة؟
  • ما هو تعريف المؤشرات الأساسية؟ (على سبيل المثال، المعيار المحدد للازدحام)
  • ما هي قواعد التنبيه؟ هل يجب تبسيطها في الإصدار الأول؟
  • ما هي الصفحات والرسوم البيانية التي تتضمنها لوحة المعلومات؟

WARNING

إذا لم تكن لديك إجابات واضحة على الأسئلة أعلاه، لا تبدأ في كتابة الكود. سوء فهم المتطلبات هو السبب الأكثر شيوعاً لإعادة العمل.

1.2 تأكيد سلسلة البيانات

mermaid
flowchart TD
  prd["PRD"] --> ingest["واجهة استيعاب البيانات"]
  ingest --> raw["جدول البيانات الأولية"]
  raw --> agg["مهمة التجميع"]
  agg --> alert["قواعد التنبيه"]
  agg --> dashboard["واجهة لوحة المعلومات"]
  alert --> dashboard

الجزء الثاني: بناء هيكل المشروع

2.1 إنشاء خدمة Go API

مرجع لموجه الأوامر:

text
بناءً على PRD الحالي، ساعدني في إنشاء هيكل منصة تحليل بيانات حركة المرور باستخدام Go.

المتطلبات:
1. استخدام Gin أو Fiber
2. توفير واجهة استيعاب البيانات
3. توفير هيكل مهمة التجميع
4. توفير هيكل واجهات dashboard و alerts
5. عدم إجراء تحليل معقد حقيقي، فقط بنية قابلة للتشغيل

2.2 التحقق من هيكل المشروع

تحقق من كل عنصر:

  • [ ] يمكن بدء خدمة Go بشكل طبيعي
  • [ ] يمكن لواجهة استيعاب البيانات استقبال البيانات وتخزينها
  • [ ] تم بناء إطار مهمة التجميع
  • [ ] يمكن لصفحة لوحة المعلومات الأمامية عرض الرسوم البيانية الأساسية

الجزء الثالث: التطوير التكراري

3.1 التقدم حسب الوحدات

  1. واجهة استيعاب البيانات: استقبال أحداث حركة المرور الأولية وكتابتها في قاعدة البيانات
  2. تجميع البيانات: التجميع حسب النوافذ الزمنية وحساب الاتجاهات ومؤشرات الازدحام
  3. قواعد التنبيه: إنشاء سجلات التنبيهات بناءً على الحدود
  4. واجهات لوحة المعلومات: توفير بيانات الاتجاهات وبيانات التصنيف وقائمة التنبيهات
  5. لوحة المعلومات الأمامية: صفحات رسوم الاتجاهات والتصنيفات وقائمة التنبيهات

3.2 الفحص الذاتي للوحدات

عنصر الفحصطريقة التحقق
استيعاب البياناتهل تم تخزين البيانات الأولية بشكل صحيح
معايير التجميعهل منطق حساب مؤشرات الاتجاهات والتصنيفات متسقة
قواعد التنبيههل شروط تفعيل التنبيهات تتوافق مع التوقعات
توافق البياناتهل يتطابق عرض لوحة المعلومات مع البيانات الخلفية
معايير APIهل توجد بنية إرجاع موحدة ومعالجة الأخطاء

الجزء الرابع: الاختبار والنشر

4.1 اختبار من طرف إلى طرف

تحقق من السيناريوهات التالية على الأقل:

  • استيعاب مجموعة بيانات اختبار ← تنفيذ مهمة التجميع ← تحديث عرض لوحة المعلومات
  • تفعيل شرط التنبيه ← إنشاء سجل تنبيه ← ظهور التنبيه على صفحة التنبيهات

المخرجات المطلوبة

بعد إكمال هذا المشروع، يجب عليك تقديم المحتوى التالي:

  • [ ] رابط عرض عبر الإنترنت قابل للوصول
  • [ ] رابط مستودع الكود المصدري (يتضمن README)
  • [ ] مستند PRD
  • [ ] لقطات شاشة للصفحات الرئيسية (عرض استيعاب البيانات، لوحة الاتجاهات، قائمة التنبيهات)
  • [ ] فيديو عرض مدته 60 ثانية

معايير التقييم

البُعدالمتطلبات الأساسيةالمتطلبات المتقدمة
توافق PRDتتوافق الوظائف وهياكل البيانات بشكل أساسي مع PRDالقدرة على شرح معايير المؤشرات ومنطق التجميع بوضوح
سلسلة البياناتاستيعاب ← تجميع ← تنبيه ← لوحة معلومات تعمل بشكل كاملمهمة التجميع تدعم التحديث التزايدي
قدرات التحليلوحدات الاتجاهات والتصنيف والتنبيهات تعملالمؤشرات قابلة للتكوين وقواعد التنبيه قابلة للتخصيص
العرض الأماميلوحة المعلومات تعرض الرسوم البيانية الأساسيةالرسوم البيانية تدعم تصفية النطاق الزمني
اكتمال الهندسةتم ربط Go API وقاعدة البيانات وسلسلة الواجهة الأماميةAPI لديه معالجة أخطاء موحدة وسجلات

المراجع