مقدمة إلى المدار
فيزياء البرمجيات: من الفكرة إلى التطبيق الجاهز
ما هو المدار؟
المدار هي لغة برمجة تصريحية لبناء تطبيقات متكاملة. بدلاً من كتابة الكود بشكل متناثر بين الواجهة والخادم، تُصرّح عن تطبيقك كمخطط من:
- الكيانات - هياكل البيانات مع قواعد التخزين
- السمات - السلوك المعرّف كآلات حالة
- الصفحات - المسارات مع ربط الواجهة
يُحوّل مُصرّف المدار هذا المخطط إلى تطبيق متكامل وجاهز للإنتاج.
المشكلة التي يحلها المدار
التطوير التقليدي
فريق الواجهة فريق الخادم فريق قواعد البيانات
| | |
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]
]
// تأثيرات: تنفيذ الإجراءات
["حفظ", "تحديث", "مهمة", "@الكيان"]
["إشعار", "نجاح", "تم حفظ المهمة!"]
["انتقال", "/المهام"]
٤. الدائرة المغلقة
كل إجراء من المستخدم يتبع هذا المسار:
١. الحدث ← المستخدم ينقر "إنجاز المهمة"
٢. الحارس ← التحقق: هل المستخدم هو المسؤول؟
٣. الانتقال ← الحالة: قيد_التنفيذ → منجز
٤. التأثيرات ← الخادم: حفظ في قاعدة البيانات
← العميل: عرض إشعار، تحديث القائمة
٥. الاستجابة ← الواجهة تتحدث بالبيانات الحقيقية
لماذا اسم "المدار"؟
الاسم مستوحى من الميكانيكا السماوية:
| الفيزياء | المدار |
|---|---|
| الأجسام في الفضاء | الكيانات (البيانات) |
| القوى تسبب الحركة | الأحداث تُطلق السلوك |
| القوانين تحكم الحركة | الحراس تتحكم بالانتقالات |
| ردود الفعل | التأثيرات |
| المدارات المستقرة | حالات التطبيق الصالحة |
كما تتبع الكواكب مسارات متوقعة تحكمها قوانين الفيزياء، التطبيقات المبنية بالمدار تتبع مسارات متوقعة تحكمها آلات الحالة.
ماذا ستبني؟
بنهاية هذا التوثيق، ستتمكن من:
- تصميم المخططات - نمذجة تطبيقات معقدة ككيانات وسمات
- كتا بة الحراس - تنفيذ صلاحيات دقيقة
- إنشاء التأثيرات - التعامل مع إجراءات الخادم والعميل
- ربط المدارات - بناء ميزات معيارية متواصلة
- نشر التطبيقات - من المخطط إلى الإنتاج
الخطوات التالية
- تثبيت الأداة - احصل على المدار
- أول مخطط - ابنِ مدير مهام
- المفاهيم الأساسية - تعمق في الأساسيات
مستعد لتغيير طريقة بناء البرمجيات؟ هيا بنا!
صُنع بشغف من المدار