الواقع المؤلم
لأشهر عديدة كنت أبني الأنظمة بمعزل عن العالم. أقرأ كتب العمارة. أناقش أطر العمل. أعيد كتابة الأشياء التي تعمل بالفعل. ثم في أوائل 2023، طُرحت عليّ سؤالاً بسيطاً: "هل يمكنك بناء منصة تعليمية للطلاب في الكويت؟"
لا غموض. لا وقت للتفكير الزائد. أشخاص حقيقيون، مواعيد نهائية حقيقية، أموال حقيقية معرضة للخطر.
هنا تغيّر كل شيء.
الأعمال أولاً، الكود ثانياً
قبل أن أكتب سطراً واحداً من الكود، جلست وطرحت الأسئلة التي تهم حقاً:
- من يستخدم هذا؟ معلمون يحملون الدروس، طلاب يشاهدون الفيديوهات، آباء يتحققون من التقدم.
- متى يستخدمونه؟ أثناء ساعات الدراسة، بعد الدروس، على بيانات جوال قد تكون بطيئة.
- ما الذي يكسر النظام؟ إذا فشل تحميل درس في المنتصف، إذا لم يستطع الطالب رؤية درجاته، إذا انقطع الاتصال على شبكة 3G.
جاءت العمارة التقنية بعد تلك الإجابات. ليس قبلها.
كان يمكنني بناء فوضى الخدمات الدقيقة. بدلاً من ذلك، اخترت:
Node.js + Express — مألوف، لا يعقّد الأمور، لا يفرض أنماط تجريد لا تناسب.
PostgreSQL + Prisma — البيانات العلائقية تناسب هيكل المدرسة بشكل مثالي. الدورات لها دروس. الطلاب يسجلون في الدورات. المعاملات مهمة هنا.
Redis للجلسات — طبقة API بدون حالة، طبقة ذاكرة تخزين مؤقت سريعة للبيانات المطلوبة بكثرة (درجات الطالب، قوائم الدروس).
S3 لتخزين الفيديو — لا تعيد اختراع العجلة. S3 بسيط وموثوق وأرخص بكثير من محاولة البث من صندوق تحت مكتبي.
الشحن يتغلب على الكمال
إليك ما حدث بالفعل:
الأسبوع الأول: حصلت على المصادقة الأساسية وإنشاء الدورات. نشرت على VPS. يمكن للمعلمين تسجيل الدخول.
الأسبوع الثاني: تحميل الفيديو لم يكن يعيد الترميز بشكل صحيح. بدلاً من بناء خط أنابيب فيديو مثالي، استخدمت FFmpeg في وظيفة خلفية. لم تكن أنيقة. لكنها نجحت.
الأسبوع الثالث: انهارت أداء الاستعلام عندما حاول معلم تحميل دورة تضم 500 طالب. أضفت فهرساً إلى قاعدة البيانات ومضيت قدماً. ليس التجزئة NoSQL الفاخرة التي كنت أحلم بها. فقط فهرس.
الأسبوع الرابع: الطلاب يستخدمونها يومياً. ملاحظات حقيقية. أخطاء حقيقية. أولويات حقيقية.
لم يكن النظام جميلاً. لكنه انطلق، وحل مشكلة حقيقية. يمكن لطلاب فجر تحميل المهام. يمكن للمعلمين تقييمهم. يمكن للآباء رؤية تقدم أطفالهم.
ما تعلمته
-
القيود هي هدايا. موعد نهائي لمدة 3 أسابيع ليس عقاباً — إنه إذن للتوقف عن الإفراط في التفكير والبدء في الشحن.
-
التكنولوجيا الممل تنتصر. مكدسي لم يكن جديداً. Express و Postgres و Redis و S3. معاً، دفعوا ملايين الأنظمة الإنتاجية. هذا ليس خطأ — إنه دليل.
-
الملاحظات الحقيقية تستحق أكثر من العمارة المثالية. معلم يقول "يمكنني أخيراً رؤية من قدّم واجبهم" يعلمني أكثر من أسبوع من مخططات العمارة.
-
إعادة الكتابة التالية دائماً أفضل. فجر ليست مثالية. ولا أي نظام تم استخدامه لسنوات. لكن بدلاً من إعادة كتابتها من الصفر بـ "تصميم أفضل"، أحافظ عليها وأضيف ميزات وأمضي قدماً.
والآن ماذا؟
أعادت هذه التجربة تعيين طريقتي في التعامل مع كل مشروع جديد. اسأل أولاً. بناء ثانياً. شحن للمستخدمين الحقيقيين. ثم التكرار.
الأنظمة التي أفتخر بها أكثر ليست الأكثر مثالية من الناحية المعمارية. إنها تلك التي تخدم الناس بالفعل، وتتعامل مع القيود الحقيقية، وتستمر في العمل عندما لا أكون أنظر.
فجر علمتني ذلك.