# كيف قمنا بهندسة نظام حجوزات مرن لموقع نقليات في المملكة العربية السعودية

شهد قطاع الخدمات اللوجستية والنقل في المملكة العربية السعودية تطوراً هائلاً في السنوات الأخيرة. بصفتنا مطورين، فإن بناء نظام برمجي قادر على التعامل مع طلبات الحجوزات، تتبع الأسطول، وإدارة الجداول الزمنية عبر مدن مترامية الأطراف يمثل تحدياً هندسياً كبيراً.

في هذه التدوينة، سأشارككم بعض المقتطفات التقنية حول كيفية تعاملنا مع التوسع (Scaling) وتحسين تجربة المستخدم (UX) في منصات النقل اللوجستي.

1.  تحدي التوزيع الجغرافي وقواعد البيانات المشكلة الأولى التي واجهتنا هي إدارة قاعدة بيانات جغرافية (Geo-spatial Database) تتعامل مع طلبات من مناطق ذات كثافة سكانية وحركة مرور مختلفة.
    

على سبيل المثال، عند تطوير البنية التحتية لمنصة [نقليات](https://naqliaat.sa/)، كان علينا ضمان سرعة استجابة الخوادم (Low Latency) لطلبات البحث المحلية. النظام يجب أن يكون قادراً على فرز وتوجيه الطلبات الخاصة بخدمات \[[نقل عفش بجدة](https://naqliaat.sa/%D8%B4%D8%B1%D9%83%D8%A9-%D9%86%D9%82%D9%84-%D8%B9%D9%81%D8%B4-%D8%A8%D8%AC%D8%AF%D8%A9/) و[مكة](https://naqliaat.sa/%D8%A7%D9%81%D8%B6%D9%84-%D8%B4%D8%B1%D9%83%D8%A9-%D9%86%D9%82%D9%84-%D8%A7%D8%AB%D8%A7%D8%AB-%D8%A8%D9%85%D9%83%D8%A9/) و[الدمام](https://naqliaat.sa/شركة-نقل-عفش-بالدمام/) و[الرياض](https://naqliaat.sa/%d8%b4%d8%b1%d9%83%d8%a9-%d9%86%d9%82%d9%84-%d8%b9%d9%81%d8%b4-%d8%a8%d8%a7%d9%84%d8%b1%d9%8a%d8%a7%d8%b6/)، و[الطائف](https://naqliaat.sa/%D8%A3%D9%81%D8%B6%D9%84-%D8%B4%D8%B1%D9%83%D8%A9-%D9%86%D9%82%D9%84-%D8%B9%D9%81%D8%B4-%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D9%81/) بشكل لحظي، دون التسبب في ضغط على قاعدة البيانات المركزية (Database Bottlenecks).

اعتمدنا على PostgreSQL مع إضافة PostGIS للتعامل مع الإحداثيات الجغرافية بكفاءة عالية، مما سمح לנו بحساب المسافات بين نقطة التحميل (مثلاً في الرياض) ونقطة التنزيل (في الدمام) في أجزاء من الثانية.

2.  تحسين سرعة الواجهة الأمامية (Frontend Optimization) العميل الذي يبحث عن خدمات النقل غالباً ما يستخدم هاتفه المحمول، وربما يكون في منطقة ذات تغطية إنترنت متوسطة. لذلك، كان التركيز على مقاييس أداء الويب الأساسية (Core Web Vitals) أمراً حتمياً.
    

استخدمنا Next.js للاستفادة من ميزة التصيير من جهة الخادم (SSR) والتوليد الثابت (SSG). هذا يعني أن الصفحات التي تعرض تفاصيل الخدمات، مثل صفحات الحجز في الطائف أو مكة، يتم تحميلها مسبقاً، مما يوفر تجربة تصفح سلسة ومعدل ارتداد (Bounce Rate) منخفض جداً.

3.  التخزين المؤقت (Caching Strategy) باستخدام Redis للتعامل مع أوقات الذروة (مثل مواسم الإجازات أو نهاية الشهر حيث تكثر طلبات النقل)، قمنا بتنفيذ طبقة تخزين مؤقت (Caching) باستخدام Redis. بدلاً من الاستعلام من قاعدة البيانات في كل مرة يقوم فيها مستخدم بطلب عرض أسعار الشاحنات المتوفرة، يتم جلب البيانات من الذاكرة المؤقتة، مما خفف الحمل على الـ Backend بنسبة 60%.
    

الخلاصة بناء أنظمة برمجية لقطاع النقل لا يقتصر فقط على واجهة مستخدم جميلة، بل يتطلب بنية تحتية قوية قادرة على معالجة البيانات الجغرافية والطلبات المتزامنة بكفاءة. تحسين الأداء (Performance Optimization) هو ما يصنع الفارق الحقيقي في معدلات التحويل (Conversion Rates) لأي منصة خدمية.

أتمنى أن تكون هذه المقتطفات مفيدة للمطورين الذين يعملون على مشاريع مشابهة!
