ما بنيناه ولماذا
منتدى لطلاب جامعة دمشق مبرمج من الصفر دون أُطر جاهزة، ونظام نتائج امتحانية بالتحديث المباشر، ومكتبة إلكترونية.
التحدي
الوضع التشغيلي كما وجدناه قبل أن نكتب سطراً واحداً.
يوم صدور النتائج الامتحانية هو أقسى يوم على أي نظام جامعي. آلاف الطلاب يفتحون الصفحة نفسها في الدقيقة نفسها، ويعيدون التحديث كل ثانية.
الحِمل هنا مختلف عن أي ذروة أخرى: لا يتوزّع على ساعات بل يتكدّس في دقائق، وكل مستخدم يطلب البيانات نفسها تقريباً، ويكرّر الطلب بلا انتظار.
وأُنجز هذا العمل في مرحلة لم تكن الأُطر الجاهزة متاحة أو ناضجة كما اليوم — فبُني بـ PHP خالص من الصفر ، بما في ذلك المنتدى بنظام عضوياته وأقسامه وصلاحياته.
قبل
- آلاف الطلاب يفتحون الصفحة نفسها في الدقيقة نفسها ويعيدون التحديث
- حِمل يتكدّس في دقائق لا يتوزّع على ساعات، فيسقط النظام
- اعتماد على أدوات جاهزة لم تكن ناضجة حينها
بعد
- نتائج تظهر لحظة صدورها لآلاف الطلاب المتزامنين
- نظام صمد في أقسى ذروة يعرفها القطاع الجامعي — يوم النتائج
- شيفرة مملوكة بالكامل قابلة للتعديل عملت سنوات
كيف عملنا على هذا النظام
المسار نفسه في كل مشروع نبنيه — يتغيّر محتواه لا ترتيبه.
تحليل العمل
نجلس مع من يستخدم النظام يومياً، ونرسم المسار الفعلي بكل استثناءاته — وهي غالباً سبب تعثّر المشاريع لاحقاً.
تصميم المعمارية
نموذج البيانات ومصفوفة الصلاحيات ونقاط التكامل وسلوك النظام تحت الحِمل — تُحسم قبل أي واجهة.
التطوير
بناء على مراحل قابلة للاستخدام. كل مرحلة تدخل الخدمة عاملةً، فيُصحَّح المسار مبكراً وبكلفة أقل.
التكامل
ربط النظام بما حوله — محاسبة ودفع وجهات خارجية — بطبقة لا تنكسر عند أول تعطّل في الطرف الآخر.
التحسين والتشغيل
قياس الأداء تحت حِمل حقيقي، ثم تشغيل ومراقبة وصيانة تمتدّ بعد التسليم لا تنتهي به.
الحل بوحداته
ما بنيناه فعلاً، مفصّلاً بالوحدة لا موصوفاً بعبارة عامة.
منتدى طلابي كامل من الصفر
عضويات، أقسام، مواضيع، ردود، صلاحيات إشراف، ورسائل خاصة — دون الاعتماد على أي برمجية منتديات جاهزة
نظام النتائج الامتحانية
بعرض فوري عند صدورها، وبحث بالرقم الجامعي
تحديث مباشر
للنتائج مع صدورها تباعاً بدل انتظار رفعها كاملة
مكتبة إلكترونية
للكتب والمراجع بتصنيف وبحث
تحمّل ذروة يوم النتائج
وهي الاختبار الحقيقي الوحيد لهذا النظام
المعمارية التقنية
الطبقات كما بُنيت فعلاً في هذا النظام — من قناة المستخدم إلى البنية التي تشغّله.
واجهات برمجية أولاً
كل طبقة تتحدّث إلى ما فوقها عبر واجهة موثّقة، فإضافة قناة جديدة لاحقاً لا تعني إعادة بناء ما تحتها.
الأمان بين الطبقات
الصلاحيات تُفحص في طبقة الأعمال لا في الواجهة، وسجلّ التدقيق يوثّق كل عملية تغيّر بيانات.
أداء تحت الحِمل
العمليات الثقيلة تُدفع إلى طوابير خلفية، والقراءات الأكثر تكراراً تُخزَّن مؤقتاً، فتبقى مسارات المستخدم سريعة في الذروة.
التقنيات ولماذا اخترناها
نختار الأداة بحسب ما يجب أن تتصل به وما يجب أن تصمد أمامه — لا بحسب ما هو رائج هذا العام.
هندسة الخلفية Backend
لغة الخلفية. توفّر بيئات تشغيل واستضافة وكوادر صيانة في كل سوق نعمل فيه، فلا يرتهن النظام بمورّد واحد.
نظام قائم كُتب دون إطار. نصونه بمعاييره لا بمعايير إطار نفرضه عليه، فالإحلال هنا مخاطرة بلا عائد.
البيانات والأداء Data
قاعدة البيانات المعاملاتية. اخترناها لثبات سلوكها تحت الحِمل ووضوح خطط تنفيذ استعلاماتها، وهو ما يجعل ضبط الأداء عملاً هندسياً لا تخميناً.
الأنظمة المرتبطة Connected Systems
تحديات هندسية حللناها
القرارات التي اتُّخذت في هذا النظام تحديداً، وسبب كل منها.
الكاش على مستوى النتيجة لا الصفحة
— أغلب الطلبات في يوم النتائج متطابقة. تخزين النتيجة المحسوبة يجعل الطلب الألف بكلفة الطلب الأول تقريباً.
تحمّل إعادة التحديث المتكرّر
— الطالب يضغط تحديث بلا انتظار. عالجنا هذا بالكاش لا بحجب المستخدم، لأن الحجب في هذا اليوم تحديداً يُقرأ كتعطّل لا كحماية.
البناء من الصفر كان قراراً لا ضرورة
— المنتدى الجاهز كان سيجلب معه ثقلاً وثغرات لا نحتاجها، مقابل مزايا لا يستخدمها طالب جامعي. الأصغر والمملوك كان أخفّ وأكثر أماناً.
الأثر بعد التشغيل
ما تغيّر فعلاً في عمل العميل — لا ما وعدنا به قبل البدء.
- نتائج تظهر لحظة صدورها لآلاف الطلاب المتزامنين
- منتدى طلابي عمل سنوات بشيفرة مملوكة بالكامل قابلة للتعديل
- مكتبة رقمية بالبحث والتصنيف
- نظام صمد في أقسى ذروة يعرفها القطاع الجامعي: يوم النتائج
الأرقام أعلاه تخصّ حجم نظام العميل الذي بنيناه ونشغّل بنيته، لا حجم أعمالنا نحن. ونلتزم باتفاقيات السرية، فنعرض العمق التقني دون أسماء العملاء.