3.5 · المكوّنات والقوالب وإعادة الاستخدام

المستوى 3 · المتقدم: التعمق في WLangage

3.5المكوّنات والقوالب وإعادة الاستخدام

الهدف: إعادة الاستخدام دون تكرار: قوالب النوافذ، النوافذ الداخلية، الحقول الفائقة والمكوّنات المشتركة بين المشاريع.
الوقت المقدّر: 11 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • القوالب والنوافذ الداخلية تلغي تكرار الشاشات: تعديل القالب ينعكس على كل النوافذ التي ترثه.
  • المكوّن يحزم مجموعة متماسكة (نوافذ، إجراءات، فئات، تقارير) لإعادة استخدامها في مشاريع أخرى، مع تصحيح مركزي.
  • رقّم الإصدارات ووثّق واحتفظ بواجهة مستقرة: فالمكوّن الذي يتغيّر باستمرار يضعف كل المشاريع المستخدمة له.

حالة مصغّرة متسلسلة — ياسين يشارك شاشات إدارته

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

حالة مستقلة لهذا القسم: تعود في الدرس والمخطط والسيناريو وتحدي 48 ساعة في القسم 3.5.

1. القوالب والنوافذ الداخلية والحقول الفائقة

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

2. المكوّن، أقوى آلية

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

3. الإصدارات والواجهة المستقرة

المكوّن المشترك يتطلب انضباطًا: إدارة الإصدارات لمعرفة أي مشروع يستخدم أي إصدار، وتوثيق استخدامه، وتصميم واجهة مستقرة. فإذا تغيّرت الواجهة باستمرار، وجب مراجعة كل المشاريع المستخدمة. وقبل تطوير لبنة، يتحقق ياسين أيضًا مما إذا كانت موجودة أصلًا في مكتبة PC SOFT أو لدى المجتمع. المبدأ الصحيح: أعد الاستخدام، لكن دون كسر المشاريع التي تعتمد على الوحدة.

خطأ شائع في الفهم: «قالب النافذة لا يخدم إلا نسخ مظهر مرة واحدة؛ والنافذة الداخلية مجرد اختصار عرض؛ والمكوّن يمكنه تغيير واجهته دون عواقب». لا، ثلاثة أخطاء. القالب يُورَّث: وتعديلاته تنعكس على كل النوافذ. والنافذة الداخلية تحمل سلوكًا قابلًا لإعادة الاستخدام، لا ديكورًا فقط. والمكوّن يعرض واجهة للمشاريع المستخدمة: وتغييرها دون احتياط يكسرها. لذلك يرقّم ياسين الإصدارات ويوثّق ويستقر الواجهة.
أربعة مستويات لإعادة الاستخدام من الأبسط إلى الأكثر بنية، اختر حسب نطاق المشاركة. قالبعرض موروث+نافذة داخليةكتلة مُدرجة+حقل فائقحقول مجمّعة+مكوّنوحدة بين المشاريع رقّم الإصدارات ووثّق كل مكوّن مشترك.
من الأبسط إلى الأكثر بنية، اختر حسب نطاق المشاركة.
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) يلاحظ ياسين، مطوّر WinDev في شركة صغيرة لتجارة المعدات الكهربائية في وهران، أن خمس بطاقات في تطبيقه تتقاسم الشريط والأزرار نفسها. 2) ينشئ قالبًا FEN_FicheModele ترثه البطاقات، ويحوّل إدخال العنوان المتكرر إلى نافذة داخلية FI_AdresseLivraison، ويبقي الحقول مجمّعة في حقل فائق. 3) لإدارة المستخدمين المخصصة لتطبيق ثانٍ في المجموعة، يحزم مكوّنًا COMP_Utilisateurs بواجهة مستقرة وموثّقة وذات إصدارات. الدرس: اختر الآلية حسب النطاق — مظهر، كتلة، وحدة — واحمِ المشاريع المستخدمة بواجهة مستقرة.

🔎 مثال ملموس — 🔎 مثال ملموس — من القالب إلى المكوّن

يعيد ياسين الاستخدام على ثلاثة مستويات في إدارة المعدات الكهربائية:

// Modele FEN_FicheModele : bandeau, logo, boutons Valider/Annuler
// Les fenetres FEN_Produit, FEN_Client, FEN_Fournisseur en heritent.

// Fenetre interne FI_AdresseLivraison inseree dans FEN_Commande
// et FEN_Facture : un seul comportement, aucun copier-coller.

// Composant COMP_Utilisateurs, partage avec une autre application
COMP_Utilisateurs.OuvreFiche(UtilisateurConnecte)
SI COMP_Utilisateurs.EstAutorise("FACTURATION") ALORS
    Ouvre(FEN_Facture)
FIN

القراءة: القالب يدير المظهر، والنافذة الداخلية الكتلة، والمكوّن الوحدة الكاملة.

الدرس: تبقى واجهة المكوّن مستقرة كي لا تُكسر المشاريع المستخدمة.

مفردات القسم

قالب نافذة
نافذة نموذجية تحدّد عرضًا مشتركًا ترثه نوافذ التطبيق.

مثال بسيط: FEN_FicheModele تحمل الشريط وأزرار البطاقات الخمس عند ياسين.

ما ليس كذلك: نافذة يُعاد إنشاؤها يدويًا لكل شاشة.

رد فعل: مظهر مشترك → قالب.

نافذة داخلية
نافذة قابلة لإعادة الاستخدام تُدرج في نوافذ أخرى، بسلوكها.

مثال بسيط: FI_AdresseLivraison تُدرج في الطلب والفاتورة.

ما ليس كذلك: كتلة منسوخة في كل شاشة بمعالجاتها.

رد فعل: كتلة متكررة → نافذة داخلية.

حقل فائق
مجموعة حقول مجمّعة وقابلة لإعادة الاستخدام بسلوكها، تُوضع كحقل.

مثال بسيط: يجمع ياسين حقول البحث عن عميل في حقل فائق.

ما ليس كذلك: حقول منفصلة تُعاد في كل شاشة.

رد فعل: حقول مجمّعة قابلة لإعادة الاستخدام → حقل فائق.

مكوّن
مجموعة عناصر محزومة لإعادة استخدامها في مشاريع أخرى، بواجهة.

مثال بسيط: COMP_Utilisateurs يدير الصلاحيات في عدة تطبيقات للمجموعة.

ما ليس كذلك: مجموعة إجراءات محدودة بمشروع واحد.

رد فعل: المشاركة بين المشاريع → مكوّن.

واجهة مستقرة
الجزء المرئي من مكوّن، ويجب أن يبقى متوقعًا للمشاريع المستخدمة.

مثال بسيط: يوثّق ياسين الطرق العامة لـCOMP_Utilisateurs ويرقّم إصداراتها.

ما ليس كذلك: واجهة تُعدَّل في كل تسليم دون إشعار.

رد فعل: حماية المشاريع المستخدمة → واجهة مستقرة.

في التطبيق — عمليًا — إعادة الاستخدام بدلًا من التكرار

  1. أنشئ قالب نافذة بالعرض المشترك واجعل شاشاتك ترثه، كما يفعل ياسين.
  2. حوّل كتلة متكررة (إدخال عنوان، بحث عميل) إلى نافذة داخلية قابلة لإعادة الاستخدام.
  3. لوحدة مخصصة لعدة مشاريع، أنشئ مكوّنًا بواجهة واضحة وموثّقة.
  4. رقّم إصدارات المكوّن ووثّقه؛ وتحقّق مما إذا كانت اللبنة موجودة أصلًا في مكتبة PC SOFT.
ترسمل عملك: تجانس بصري تلقائي، وكتل معاد استخدامها دون تكرار، ووحدات مشتركة بتصحيح مركزي.

سيناريو خطوة بخطوة — المشاركة كما يفعل ياسين (4 دقائق)

1) حدّد العرض المشترك لعدة شاشات وأنشئ قالب نافذة. 2) اجعل الشاشات الموجودة ترثه وتحقّق من انعكاس التعديل. 3) اعزل كتلة متكررة في نافذة داخلية بسلوكها. 4) لوحدة مشتركة بين المشاريع، حدّد واجهة مستقرة وموثّقة. 5) رقّم إصدارات المكوّن ودوّن أي مشروع يستخدم أي إصدار.

احتفظ بهذا المبدأ: أعد الاستخدام دون كسر — واجهة المكوّن تُغيَّر بحذر.

قالب للنسخ واللصق — بطاقة إعادة الاستخدام عند ياسين

القالب        : عرض مشترك موروث (شريط، أزرار)
نافذة داخلية  : كتلة قابلة لإعادة الاستخدام تُدرج (عنوان، بحث)
حقل فائق     : حقول مجمّعة + سلوك
مكوّن         : وحدة محزومة لمشاريع أخرى
الحذر         : واجهة مستقرة، توثيق، إصدارات

خمس بطاقات متطابقة

ينشئ ياسين قالبًا ويجعل البطاقات ترثه: الشريط يُعدّل مرة واحدة.

عنوان متكرر

يعزل ياسين إدخال العنوان في نافذة داخلية تُستخدم في الطلب والفاتورة.

وحدة متعددة المشاريع

يحزم ياسين إدارة المستخدمين في مكوّن ذي إصدارات.

واجهة تتغيّر

يوثّق ياسين واجهة المكوّن ويستقرها كي لا يكسر التطبيقات الأخرى.

✓ ممارسات جيدة

  • قالب لـالمظهر، ونافذة داخلية لـكتلة.
  • مكوّن لوحدة مشتركة بين عدة مشاريع.
  • دائمًا رقّم الإصدارات ووثّق.

✗ أخطاء شائعة

  • إعادة إنشاء الشريط نفسه في كل نافذة.
  • نسخ كتلة بدلًا من نافذة داخلية.
  • تغيير واجهة مكوّن دون احتياط.

النقاط الأساسية

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

تحدي 48 ساعة — طبّقه غدًا

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

قائمة الخروج من القسم
  • أعرف متى أستخدم القالب أو النافذة الداخلية أو الحقل الفائق.
  • أميّز المكوّن من مجموعة الإجراءات.
  • أفهم أهمية الإصدارات والواجهة المستقرة.
تقييم ذاتي 1-5: هل أعيد الاستخدام بدلًا من نسخ شاشة؟تقييم ذاتي 1-5: هل أحمي واجهة مكوّناتي؟

أسئلة شائعة

متى أنشئ مكوّنًا بدلًا من مجموعة إجراءات بسيطة؟

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

كيف أضمن التجانس البصري دون إعادة كل شيء يدويًا؟

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

تحقّق من فهمك

متى يكون المكوّن أنسب من مجموعة إجراءات؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 3أسئلة جديدة وأصعب للتحقق من مكتسباتك