Preskoči na vsebino

مقدمة إلى 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
- نماذج البيانات
- الصلاحيات
- التوثيق

الفوائد:

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

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

١. الكيانات

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

{
"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]
]

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

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

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

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

لماذا اسم "Orb"؟

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

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

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

ماذا ستبني؟

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

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

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

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

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


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