يعتقد الكثيرون أن تطوير الواجهة الخلفية (Backend) يقتصر على عمليات الإنشاء والقراءة والتحديث والحذف (CRUD)، لكن الحقيقة أن هذه العمليات هي جزء صغير فقط من العمل الهندسي الحقيقي الذي يضمن أمان وفعالية تطبيقاتنا اليومية.
دائماً ما نسمع الحديث عن أن تطوير الواجهة الخلفية (Backend Development) هو 'مجرد عمليات CRUD'. عمليات CRUD تعني الإنشاء (Create)، القراءة (Read)، التحديث (Update)، والحذف (Delete)، وهي العمليات الأساسية التي نقوم بها على البيانات. مثلاً، عندما تطلب طعاماً عبر تطبيق، فهذا 'إنشاء' لطلب جديد. وعندما تتحقق من حالة طلبك، فهذه 'قراءة'. إذا غيرت عنوان التسليم قبل الشحن، فهذا 'تحديث'. وإلغاء الطلب هو 'حذف'. من السهل فهم لماذا يعتقد الكثيرون أن هذا هو كل شيء. عندما تبدأ بتعلم تطوير الواجهة الخلفية، غالباً ما تبدأ ببناء تطبيقات بسيطة تعتمد بشكل كبير على CRUD، مثل تطبيق 'قائمة المهام'. هذا ممتاز للمبتدئين لتعلم أساسيات التوجيه (routing)، طرق HTTP، التحقق من صحة الطلبات، قواعد البيانات، وغيرها من المفاهيم. ولكن، هذه البداية المباشرة قد تخفي عنا الصورة الكاملة لما يتطلبه بناء نظام خلفي حقيقي. الحقيقة هي أن عمليات CRUD هذه تمثل حوالي 10% فقط من العمل الهندسي الفعلي المطلوب لتطبيق يعمل بكفاءة وأمان. تخيل أنك تقوم بحذف طلب طعام — من الذي يقوم بالحذف؟ هل يمكن لأي شخص حذف أي طلب؟ هذا هو جوهر المشكلة. قبل أن تتم أي عملية CRUD، يجب على الواجهة الخلفية الإجابة على سؤالين مهمين للغاية: أولاً: 'من هو الشخص الذي يقوم بهذا الطلب؟' هذا ما نسميه 'المصادقة' (Authentication). يجب على النظام التأكد من هويتك باستخدام طرق مثل رموز JWT أو ملفات تعريف الارتباط (session cookies) أو OAuth. بدون المصادقة، لن يكون لديك تطبيق فعلي، بل ستكون قاعدة بيانات عامة ومكشوفة للجميع. ثانياً: 'ماذا يُسمح لهذا الشخص بفعله؟' هذا هو 'التخويل' (Authorization). حتى لو تم التحقق من هويتك، قد لا يكون مسموحاً لك بحذف طلب شخص آخر. على سبيل المثال، قد يحاول عميل عادي حذف طلب مطعم، هنا يجب أن يرفض النظام ذلك. إذاً، المرة القادمة التي تفكر فيها بتطوير الواجهة الخلفية، تذكر أن هناك عالماً كاملاً من التعقيد والأمان يختبئ خلف واجهة CRUD البسيطة. فهم هذه الطبقات الإضافية هو ما يميز المطور المحترف ويجعل تطبيقاتنا موثوقة وآمنة للاستخدام اليومي.