بيانات الانعكاس والمزخرفات قوية النوع
بيانات الانعكاس والمزخرفات قوية النوع
البيانات الوصفية هي الطريقة التي يحول بها NestJS المزخرفات إلى قرارات وقت التشغيل. يمكن لمزخرف أن يضيف أدواراً أو أعلام ميزات أو مفاتيح تخزين مؤقت أو تسميات تدقيق أو علامة لمسار عام، ثم يقرأها حارس أو معترض ويطبق السياسة بثبات.
الفكرة الأساسية
تدور هذه الميزة حول التحكم في كيفية تنظيم التطبيق وسلوكه وقت التشغيل. النقاط التالية هي ما يجب أن يعرفه المطور قبل استخدامها في مشروع حقيقي:
- تعمل SetMetadata()، لكن Reflector.createDecorator() يمنح نوعاً أقوى ويقلل أخطاء مفاتيح النصوص.
- تصلح getAllAndOverride() عندما يجب أن تستبدل بيانات الدالة بيانات المتحكم.
- تصلح getAllAndMerge() عندما يجب دمج بيانات الصنف والدالة.
- البيانات الوصفية مكانها قرارات التنظيم، لا إخفاء قواعد العمل التي يجب أن تبقى في الخدمات.
- تحافظ المزخرفات المركبة عبر applyDecorators() على وضوح المتحكم عندما يحتاج المسار حراساً وأدواراً وبيانات OpenAPI ومعترضات معاً.
مثال عملي
يوضح المثال التالي الشكل العملي للفكرة داخل مشروع NestJS. ليست الغاية حفظ الكود، بل فهم مكانه في المعمارية:
قائمة تطبيق إنتاجية
- استخدم مصانع مزخرفات قوية النوع للمفاتيح المتكررة.
- اختر بين الاستبدال والدمج بوعي.
- لا تنشئ مزخرفات تنفذ عمل قاعدة بيانات مباشرة.
- اجعل المزخرفات المركبة صغيرة بما يكفي ليبقى سلوكها واضحاً عند المسار.
الخلاصة
يغطي هذا الدرس جزءاً متقدماً من NestJS يجب فهمه عند بناء تطبيقات مؤسسية. ركّز على الحدود الواضحة، والسلوك القابل للاختبار، واختيار الأداة المناسبة للسياق بدلاً من استخدام كل ميزة في كل مكان.