إنتقل إلى المحتوى الرئيسي

مقدمة إلى المدار

فيزياء البرمجيات: من الفكرة إلى التطبيق الجاهز

ما هو المدار؟

المدار هي لغة برمجة تصريحية لبناء تطبيقات متكاملة. بدلاً من كتابة الكود بشكل متناثر بين الواجهة والخادم، تُصرّح عن تطبيقك كمخطط من:

  • الكيانات - هياكل البيانات مع قواعد التخزين
  • السمات - السلوك المعرّف كآلات حالة
  • الصفحات - المسارات مع ربط الواجهة

يُحوّل مُصرّف المدار هذا المخطط إلى تطبيق متكامل وجاهز للإنتاج.

المشكلة التي يحلها المدار

التطوير التقليدي

فريق الواجهة         فريق الخادم          فريق قواعد البيانات
| | |
v v v
كود React + Express API + SQL/Schema
| | |
v v v
صلاحيات + صلاحيات + قيود
| | |
v v v
اختبارات + اختبارات + اختبارات

المشاكل:

  • منطق الأعمال مكرر عبر الطبقات
  • الصلاحيات متناثرة في كل مكان
  • التوثيق منفصل عن الكود
  • الاختبار يتطلب أساليب متعددة

التطوير بالمدار

مخطط المدار (ملف .orb)
|
v
almadar compile
|
v
تطبيق متكامل
- واجهة React
- خادم Express
- نماذج البيانات
- الصلاحيات
- التوثيق

الفوائد:

  • مصدر واحد للحقيقة
  • الصلاحيات في الحراس (مكان واحد)
  • المخطط هو التوثيق
  • آلات الحالة قابلة للاختبار بطبيعتها

المفاهيم الأساسية

١. الكيانات

الكيانات تُعرّف ما يديره تطبيقك:

{
"name": "مهمة",
"persistence": "persistent",
"fields": [
{ "name": "العنوان", "type": "string", "required": true },
{ "name": "الحالة", "type": "enum", "values": ["معلق", "قيد_التنفيذ", "منجز"] },
{ "name": "المسؤول", "type": "relation", "target": "مستخدم" },
{ "name": "تاريخ_الاستحقاق", "type": "date" }
]
}

أنواع التخزين:

  • persistent - مخزن في قاعدة البيانات
  • runtime - في الذاكرة (خاص بالجلسة)
  • singleton - نسخة عالمية واحدة

٢. السمات

السمات تُعرّف كيف يتصرف تطبيقك باستخدام آلات الحالة:

{
"name": "دورة_حياة_المهمة",
"stateMachine": {
"states": [
{ "name": "معلق", "isInitial": true },
{ "name": "قيد_التنفيذ" },
{ "name": "منجز" }
],
"events": [
{ "key": "بدء", "name": "بدء العمل" },
{ "key": "إنجاز", "name": "تحديد كمنجز" }
],
"transitions": [
{
"from": "معلق",
"to": "قيد_التنفيذ",
"event": "بدء",
"guard": ["=", "@الكيان.المسؤول", "@المستخدم_الحالي.id"],
"effects": [
["حفظ", "تحديث", "مهمة", "@الكيان"],
["إشعار", "نجاح", "تم بدء المهمة"]
]
}
]
}
}

ملاحظة مهمة: السمة تجمع السلوك (آلة الحالة) والواجهة (تأثيرات render-ui).

٣. تعبيرات S

كل المنطق يُعبّر عنه كمصفوفات:

// حارس: التحقق من الشروط
["و",
["=", "@الكيان.الحالة", "معلق"],
[">", "@الكيان.الأولوية", 3]
]

// تأثيرات: تنفيذ الإجراءات
["حفظ", "تحديث", "مهمة", "@الكيان"]
["إشعار", "نجاح", "تم حفظ المهمة!"]
["انتقال", "/المهام"]

٤. الدائرة المغلقة

كل إجراء من المستخدم يتبع هذا المسار:

١. الحدث    ← المستخدم ينقر "إنجاز المهمة"
٢. الحارس ← التحقق: هل المستخدم هو المسؤول؟
٣. الانتقال ← الحالة: قيد_التنفيذ → منجز
٤. التأثيرات ← الخادم: حفظ في قاعدة البيانات
← العميل: عرض إشعار، تحديث القائمة
٥. الاستجابة ← الواجهة تتحدث بالبيانات الحقيقية

لماذا اسم "المدار"؟

الاسم مستوحى من الميكانيكا السماوية:

الفيزياءالمدار
الأجسام في الفضاءالكيانات (البيانات)
القوى تسبب الحركةالأحداث تُطلق السلوك
القوانين تحكم الحركةالحراس تتحكم بالانتقالات
ردود الفعلالتأثيرات
المدارات المستقرةحالات التطبيق الصالحة

كما تتبع الكواكب مسارات متوقعة تحكمها قوانين الفيزياء، التطبيقات المبنية بالمدار تتبع مسارات متوقعة تحكمها آلات الحالة.

ماذا ستبني؟

بنهاية هذا التوثيق، ستتمكن من:

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

الخطوات التالية

  1. تثبيت الأداة - احصل على المدار
  2. أول مخطط - ابنِ مدير مهام
  3. المفاهيم الأساسية - تعمق في الأساسيات

مستعد لتغيير طريقة بناء البرمجيات؟ هيا بنا!


صُنع بشغف من المدار