دورة تطوير نظام إدارة الأعراس والمناسبات ودعوات QR عمليًا

بناء الإنتاج وتجنّب أخطاء الحالة المربكة

بناء الإنتاج وتجنّب أخطاء الحالة المربكة — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي
وقت الدراسة
10 دقيقة

المسار: تطوير نظام إدارة الأعراس ودعوات QR الوحدة: النشر والإنتاج

مدخل إلى الدرس: بناء الإنتاج وتجنّب أخطاء الحالة المربكة

بناء الإنتاج وتجنّب أخطاء الحالة المربكة — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي

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

خريطة بصرية للمفهوم

مخطط توضيحي: النشر والإنتاج
flowchart LR
    A["طلبات المناسبة"]
    B["إدارة الدعوات"]
    C["إصدار QR"]
    D["التحقق من الدعوة"]
    E["متابعة الحضور"]
    A --> B
    B --> C
    C --> D
    D --> E

التسلسل: طلبات المناسبة ← إدارة الدعوات ← إصدار QR ← التحقق من الدعوة ← متابعة الحضور.

أهداف هذا الدرس

  • تشغيل npm run build وفهم ناتج Next.
  • كشف الرسائل القياسية: static, dynamic, edge.
  • غلق أخطاء الترجمة والـ hydration قبل النشر.

مثال

npm run build

▲ Next.js 14.x
✦ Creating an optimized production build ...
◇ Compiled successfully
━ Generating static pages (4/5) ...

Route (app)                          Size     First Load JS
┌ ○ /                                1.2 kB        80.1 kB
├ ● /i/[token]                       2.1 kB        82.0 kB   (dynamic)
├ ├ ┌ /admin                         1.5 kB        84.4 kB
└ ● /api/checkin                     0.7 kB        0.0 kB   (dynamic)

✓ Compiled successfully
✓ Collecting page data
✓ Generating static pages
✓ Finalizing page building
   Linting and checking validity ...
   Collecting build data ...
   Exporting SSR for dynamic routes ...
✓ Generating static pages (5/5)
   Finalizing page building
Total build time: 14.3s

المخطط: ما يفصح عنه ناتج البناء

flowchart TD
    A["○ static — HTML يُبنى مرة واحدة (سريع جداً)"]
    B["● dynamic — SSR لكل طلب
(يعتمد على request/params/cookies)"] C["ƒ edge/streaming — تنفيذ عند الحافة"] D["✕ خطأ — إصلاح قبل النشر"]

لماذا /i/[token] dynamic؟

لأنه يقرأ searchParams و params ويفعل DB؛ ضبط dynamicRoute يدل Next على عدم تجميده سكًا. لو استُخدمت generateStaticParams بلا قوائم pk قد تُجمَّد لا بياسته.

قبل النشر

قم بإصلاح كل تحذير (warning) من lint/type قبل الرفع — فبيئة الإنتاج أحياناً ترفض الجملة على كل خطأ TS حتى لو بدا محلياً.

تمرين تطبيقي: شغّل build وشاهد خرج صفحاتك؛ ميز مدين التطبيق static/dynamic ثم أصلح أي استيراد غير مستخدم.

أخطاء شائعة يجب تفاديها

  • تجاهل أحد تحذيرات TypeScript — تنكسر على Vercel.
  • اعتبار dynamic خطأ — هو Intent صحيح للـ /i/[token].
  • دفع الكود دون build أخير يمر أحياناً بغفلة.

معجم مصطلحات الدرس

static generation
حفظ HTML جاهز مبكراً وتسليمه بسكناً.
SSR
عرض خادمي لكل طلب عند الحاجة للبيانات.
First Load JS
حجم JS الابتدائي للصفحة للعميل.

مراجعة وتمرين تثبيت المهارة

اختبار سريع: اشرح بعبارتك معنى «بناء الإنتاج وتجنّب أخطاء الحالة المربكة»، ثم بيّن أين ستستخدمه داخل نظام تسجيل حضور دعوات مناسبة عبر رمز QR، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.

تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.

الدرس التالي: نشر المشروع على Vercel. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.

دروس نصية

#1

نظرة عامة على الدورة والمخرجات

#2

مقدمة إلى Next.js وأسباب اختياره

#3

أساسيات schema.prisma والنماذج

#4

مقدمة Route Handlers وبنية الاستجابة

#5

فهم Server Components والجلب الآمن

#6

تصميم الرمز Secured والتوقيع HMAC

#7

بناء الإنتاج وتجنّب أخطاء الحالة المربكة

#8

تحليل المتطلبات وتحديد الكيانات

#9

إنشاء مشروع Next.js وتجربته

#10

نموذج المناسبة Event بالعلاقات

#11

واجهة إنشاء المناسبة POST /api/events

#12

تصميم صفحة الدعوة الإلكترونية

#13

توليد صورة QR من قاعدة الدعوة

#14

نشر المشروع على Vercel

#15

تصميم قاعدة البيانات والعلاقات

#16

تجريب PostgreSQL محلياً وإنشاء قاعدة الداتا

#17

نموذج المدعو Guest مع الرمز الموقّع

#18

واجهات الضيوف الإضافة والقائمة

#19

نموذج الرد RSVP التفاعلي

#20

تجربة المسح في بوابة الحفل

#21

قاعدة بيانات إنتاج مُدارة وأمانها

#22

تدفق الدعوة وقراءة QR من التوليد إلى الحضور

#23

تثبيت Prisma والاتصال بالقاعدة

#24

نموذج الرد Rsvp ومنع التكرار

#25

واجهة تسجيل الحضور POST /api/checkin

#26

صفحة قائمة الضيوف والفرز

#27

واجهة تتفهم حالة الحضور والحصر

#28

إدارة المتغيرات السرية بيئة وواجهة

#29

سيناريو المشروع وقواعد العمل

#30

بنية مجلدات المشروع ومسارات الصفحات

#31

الاستعلام والجلب مع العلاقات

#32

التحقق من المدخلات ومعالجة الأخطاء

#33

لوحة الإحصائيات الحية

#34

تأمين الروابط والهجمات الشائعة

#35

قائمة الفحص النهائي قبل الإطلاق

#36

الترحيلات migrations والبذور seed

عرض الدروس كاملة تحقق من صفحة تعلم الدورة
درس نصي 1/36
أنت تشاهد
بناء الإنتاج وتجنّب أخطاء الحالة المربكة