طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 241 · تحليل وتصميم برمجيات الويب
الدرس 11 · الوحدة 5: تحديد الأدوات واللغات المناسبة

مشهد التقنيات: اللغات والأطر وقواعد البيانات

ما الخيارات المتاحة لكل طبقة من تطبيق الويب، وكيف تختار منها بناءً على متطلبات المشروع؟ ⏱ نحو 40 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تعدّد طبقات تطبيق الويب وخيارات كل طبقة.
  • تقارن أطر الخادم الشائعة بنقاط قوتها وما يُنتبه إليه.
  • تحدد معايير اختيار التقنيات المرتبطة بالمتطلبات والقيود.
  • تكتب مقترح تقنيات مبرّرًا بالمتطلبات.

١طبقات تطبيق الويب وخياراتها

بعد أن عرفنا ماذا سيفعل النظام (المتطلبات) وما بياناته (الأصناف والجداول)، نسأل: بأي أدوات سنبنيه؟ تطبيق الويب طبقات، ولكل طبقة خيارات كثيرة. مهمة المحلل في هذه الوحدة: دراسة الخيارات، ومقارنتها، واختيار الأنسب لهذا المشروع لا الأشهر ولا المفضّل شخصيًّا.

الاستضافة

استضافة مشتركة

خادم افتراضي VPS

منصة سحابية PaaS

البيانات

MySQL

PostgreSQL

MongoDB

الخادم

PHP و Laravel

Python و Django

Node و Express

C# و ASP.NET

الواجهة الأمامية

HTML و CSS و JS

React

Vue

Blade في Laravel

طبقات تطبيق الويب وأمثلة على خيارات كل طبقة: «مجموعة التقنيات» Tech Stack هي خيار واحد من كل طبقة.

٢الخادم: اللغة والإطار

اللغة والإطارنقاط القوةما يُنتبه إليهيناسب
PHP و Laravelاستضافة رخيصة ومنتشرة، وأدوات جاهزة (مصادقة، وصلاحيات، وقوائم انتظار)، ومجتمع عربي كبيريحتاج انضباطًا في تنظيم الكود في المشاريع الكبيرةأنظمة الإدارة والمتاجر والبوابات
Python و Djangoلوحة إدارة جاهزة، وأمان افتراضي قوي، ومناسب لمشاريع البياناتالاستضافة أقل انتشارًا من PHPالأنظمة الكثيفة البيانات والتقارير
Node و ExpressJavaScript في الواجهة والخادم معًا، وممتاز للاتصال الفوريإطار صغير: تختار المكتبات وتنظّم بنفسكواجهات API والتطبيقات الفورية
C# و ASP.NETأداء عالٍ، وأدوات Microsoft المؤسسيةتكلفة الترخيص والاستضافة أحيانًاالجهات التي تعتمد بيئة Microsoft

٣الواجهة وقاعدة البيانات والاستضافة

الطبقةالخيارمتى يناسب؟
الواجهةصفحات يولّدها الخادم (Blade، قوالب Django)نماذج وجداول وإدارة: أبسط وأسرع في البناء
الواجهةتطبيق صفحة واحدة SPA (React، Vue)تفاعل كثيف يشبه التطبيقات، أو تطبيق جوال يشارك نفس API
البياناتعلائقية: MySQL، PostgreSQLبيانات مترابطة بعلاقات واضحة وتحتاج سلامة (تسجيل، ودفع)
البياناتمستندات: MongoDBبيانات مرنة البنية تتغير حقولها كثيرًا
الاستضافةاستضافة مشتركةمواقع صغيرة بميزانية منخفضة
الاستضافةخادم افتراضي VPSتحكم كامل، ويحتاج من يديره ويحدّثه
الاستضافةمنصة سحابية PaaSنشر سهل وتوسع تلقائي، والتكلفة تزيد مع الاستخدام

٤معايير الاختيار: من المتطلبات لا من الذوق

الاختيار الجيد يمكن تبريره بمتطلب أو قيد، لا بعبارة «لأنه الأشهر». هذه المعايير التي نقيس بها في الدرس القادم:

المعيارالسؤالمثال في «دورات»
ملاءمة المتطلباتهل يحقق الوظائف وغير الوظيفية بسهولة؟NFR-01 الأداء مع 300 مستخدم: كل الخيارات تكفي
مهارات الفريقهل يعرفه الفريق؟ كم يكلف التعلم؟الفريق درس PHP و MySQL ← ميزة لـ Laravel
التكلفةالترخيص، والاستضافة، والصيانةميزانية المركز محدودة ← استضافة رخيصة
المجتمع والدعمهل له توثيق ومجتمع ومكتبات؟Laravel و Django مجتمعهما كبير
الأمانهل يحمي افتراضيًّا من الثغرات الشائعة؟الأطر الكبيرة تحمي من حقن SQL و CSRF افتراضيًّا
قابلية الصيانةهل يسهل على فريق آخر تطويره لاحقًا؟إطار معروف أفضل من كود مخصص

توقّع وتحقّق

بيانات تسجيل ودفع مترابطة بعلاقات وتحتاج سلامة. أنسب قاعدة:

أقوى تبرير لاختيار Laravel لمشروع «دورات»:

«مجموعة التقنيات» Tech Stack تعني:

تطبيق جوال سيستخدم بيانات الموقع نفسها لاحقًا. ما الأنسب للواجهة؟

API واحدة تخدم الموقع والتطبيق.

الخلاصة

تحدٍّ تصميمي: مقترح التقنيات لـ «دورات»

متوسط

اكتب مقترح التقنيات لنظام «دورات». معطيات: الفريق درس PHP و MySQL و React، والميزانية محدودة، ويتوقع المركز 300 مستخدم متزامن يوم فتح التسجيل (NFR-01)، وقد يُطلب تطبيق جوال في المرحلة الثانية.

المطلوب:
  • خيار لكل طبقة: الواجهة، والخادم، وقاعدة البيانات، والاستضافة.
  • لكل خيار سبب يبدأ بـ «لأن» أو «بسبب».
  • ربط سببين على الأقل بمعرّفات متطلبات (FR أو NFR).
  • خطران على الأقل للمقترح مع طريقة التعامل معهما.
✓ التحقق الآلي: يفحص المختبر بنية مستندك وصياغته (لا يحكم على جودة الفكرة؛ هذا دور معلمك)
  • خيار للواجهة
  • خيار للخادم
  • خيار لقاعدة البيانات
  • خيار للاستضافة
  • سبب للواجهة
  • سبب للخادم
  • سبب لقاعدة البيانات
  • سبب للاستضافة
  • سببان على الأقل مربوطان بمعرّفات متطلبات (FR أو NFR)
  • خطران على الأقل
  • كل خطر معه معالجة

💡 تلميح 1
السبب يربط الخيار بمعطى من المسألة: مهارات الفريق، أو الميزانية، أو NFR-01، أو المرحلة الثانية.
💡 تلميح 2
اكتب المعرّف بين قوسين في السبب: «… يتحمل 300 مستخدم (NFR-01)».

نموذج واحد من إجابات كثيرة صحيحة.

الواجهة: الخيار والسبب
صفحات Blade للوحة الإدارة، و React لواجهة المتدرب لأن التطبيق الجوال في المرحلة الثانية سيستخدم نفس API.
الخادم: الخيار والسبب
Laravel لأن الفريق يعرف PHP، ولأنه يوفر المصادقة والصلاحيات جاهزة (FR-07).
قاعدة البيانات: الخيار والسبب
MySQL لأن بيانات التسجيل والدفع مترابطة بعلاقات وتحتاج سلامة المعاملات (FR-02).
الاستضافة: الخيار والسبب
خادم افتراضي VPS داخل المملكة لأنه يتحمل 300 مستخدم متزامن (NFR-01) بتكلفة شهرية محدودة.
المخاطر والتعامل معها (كل خطر في سطر)
خطر: ضغط يوم فتح التسجيل ← المعالجة: اختبار حمل قبل الإطلاق.
خطر: نقص خبرة الفريق في React ← المعالجة: البدء بصفحات Blade ثم الانتقال تدريجيًّا.
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس