مقدمة إلى Orb
فيزياء البرمجيات: من الفكرة إلى التطبيق الجاهز
ما هي لغة Orb؟
Orb هي لغة برمجة تصريحية لبناء تطبيقات متكاملة. بدلاً من كتابة الكود بشكل متناثر بين الواجهة والخادم، تُصرّح عن تطبيقك كمخطط من:
- الكيانات - هياكل البيانات مع قواعد التخزين
- السمات - السلوك المعرّف كآلات حالة
- الصفحات - المسارات مع ربط الواجهة
يُحوّل مُصرّف Orb هذا المخطط إلى تطبيق متكامل وجاهز للإنتاج.
المشكلة التي تحلها Orb
التطوير التقليدي
فريق الواجهة فريق الخادم فريق قواعد البيانات
| | |
v v v
كود React + Express API + SQL/Schema
| | |
v v v
صلاحيات + صلاحيات + قيود
| | |
v v v
اختبارات + اختبارات + اختبارات
المشاكل:
- منطق الأعمال مكرر عبر الطبقات
- الصلاحيات متناثرة في كل مكان
- التوثيق منفصل عن الكود
- الاختبار يتطلب أساليب متعددة
التطوير بـ Orb
مخطط Orb (ملف .orb)
|
v
orb compile
|
v
تطبيق متكامل
- واجهة React
- خادم Express
- نماذج البيانات
- الصلاحيات
- التوثيق
الفوائد:
- مصدر واحد للحقيقة
- الصلاحيات في الحراس (مكان واحد)
- المخطط هو التوثيق
- آلات الحالة قابلة للاختبار بطبيعتها
المفاهيم الأساسية
١. الكيانات
الكيانات تُعرّف ما يديره تطبيقك:
{
"اسم": "مهمة",
"استمرارية": "دائم",
"حقول": [
{
"اسم": "العنوان",
"نوع": "نص",
"مطلوب": true
},
{
"اسم": "الحالة",
"نوع": "تعداد",
"قيم": [
"معلق",
"قيد_التنفيذ",
"منجز"
]
},
{
"اسم": "المسؤول",
"نوع": "علاقة",
"هدف": "مستخدم"
},
{
"اسم": "تاريخ_الاستحقاق",
"نوع": "تاريخ"
}
]
}
أنواع التخزين:
persistent- مخزن في قاعدة البياناتruntime- في الذاكرة (خاص بالجلسة)singleton- نسخة عالمية واحدة
٢. السمات
السمات تُعرّف كيف يتصرف تطبيقك باستخدام آلات الحالة:
{
"اسم": "دورة_حياة_المهمة",
"آلة_حالة": {
"حالات": [
{
"اسم": "معلق",
"أولي": true
},
{
"اسم": "قيد_التنفيذ"
},
{
"اسم": "منجز"
}
],
"أحداث": [
{
"مفتاح": "بدء",
"اسم": "بدء العمل"
},
{
"مفتاح": "إنجاز",
"اسم": "تحديد كمنجز"
}
],
"انتقالات": [
{
"من": "معلق",
"إلى": "قيد_التنفيذ",
"حدث": "بدء",
"حارس": [
"يساوي",
"@الكيان.المسؤول",
"@المستخدم_الحالي.id"
],
"تأثيرات": [
[
"حفظ",
"تحديث",
"مهمة",
"@الكيان"
],
[
"إشعار",
"نجاح",
"تم بدء المهمة"
]
]
}
]
}
}
ملاحظة مهمة: السمة تجمع السلوك (آلة الحالة) والواجهة (تأثيرات render-ui).
٣. تعبيرات S
كل المنطق يُعبّر عنه كمصفوفات:
// حارس: التحقق من الشروط
["و",
["=", "@الكيان.الحالة", "معلق"],
[">", "@الكيان.الأولوية", 3]
]
// تأثيرات: تنفيذ الإجراءات
["حفظ", "تحديث", "مهمة", "@الكيان"]
["إشعار", "نجاح", "تم حفظ المهمة!"]
["انتقال", "/المهام"]
٤. الدائرة المغلقة
كل إجراء من المستخدم يتبع هذا المسار:
١. الحدث ← المستخدم ينقر "إنجاز المهمة"
٢. الحارس ← التحقق: هل المستخدم هو المسؤول؟
٣. الانتقال ← الحالة: قيد_التنفيذ → منجز
٤. التأثيرات ← الخادم: حفظ في قاعدة البيانات
← العميل: عرض إشعار، تحديث القائمة
٥. الاستجابة ← الواجهة تتحدث بالبيانات الحقيقية
لماذا اسم "Orb"؟
الاسم مستوحى من الميكانيكا السماوية:
| الفيزياء | Orb |
|---|---|
| الأجسام في الفضاء | الكيانات (البيانات) |
| القوى تسبب الحركة | الأحداث تُطلق السلوك |
| القوانين تحكم الحركة | الحراس تتحكم بالانتقالات |
| ردود الفعل | التأثيرات |
| المدارات المستقرة | حالات التطبيق الصالحة |
كما تتبع الكواكب مسارات متوقعة تحكمها قوانين الفيزياء، التطبيقات المبنية بلغة Orb تتبع مسارات متوقعة تحكمها آلات الحالة.
ماذا ستبني؟
بنهاية هذا التوثيق، ستتمكن من:
- تصميم المخططات - نمذجة تطبيقات معقدة ككيانات وسمات
- كتابة الحراس - تنفيذ صلاحيات دقيقة
- إنشاء التأثيرات - التعامل مع إجراءات الخادم والعميل
- ربط المدارات - بناء ميزات معيارية متواصلة
- نشر التطبيقات - من المخطط إلى الإنتاج
الخطوات التالية
- تثبيت الأداة - احصل على Orb
- بناء مدير المهام - أول مخطط لك
- المفاهيم الأساسية: الكيانات - تعمق في الأساسيات
مستعد لتغيير طريقة بناء البرمجيات؟ هيا بنا!
صُنع بشغف من المدار