نحن في TestMace نستخدم بنشاط NestJS لتطوير خدماتنا. اليوم ، انتباهكم هو ترجمة لمقال مخصص لمراجعة ميزات الإصدار الرئيسي الجديد من NestJS.
يسعدني اليوم تقديم الإصدار الرسمي من Nest 6 ، وهو إطار Node.js التدريجي لإنشاء تطبيقات خادم المؤسسات الفعالة.
بالنسبة إلى مجتمعنا ، لم يمر العام الماضي بدون أي أثر: فقد نمت الشعبية بنسبة 300٪ تقريبًا ، وهو ما يمثل 4 مرات أكثر من أي من مكتبات HTTP الحالية. تحدثوا عن Nest في عدد كبير من المؤتمرات حول العالم ، وتم إنشاء العديد من المقالات ومقاطع الفيديو. 2018 كان لا يصدق ، و 2019 سيكون أفضل!
ما الجديد؟
الإصدار الجديد يستعد العديد من الميزات الرائعة! لسوء الحظ ، لن يكون لدينا وقت لتغطيةهم جميعًا ، لكننا سنركز بالتأكيد على أهمهم!
نطاقات الحقن
في الإصدارات السابقة من Nest ، تمت مشاركة كل موفر بواسطة عدة طلبات. باستخدام أحرف مفردة يقلل من استهلاك الذاكرة ويحسن أداء التطبيق.
ومع ذلك ، في بعض الحالات ، قد تكون هناك حاجة إلى تحكم إضافي في دورة حياة كل مزود. على سبيل المثال ، عند تطبيق ذاكرة تخزين مؤقت منفصلة لكل استعلام في تطبيق GraphQL عند إنشاء أنظمة متعددة المستخدمين. لحل هذه المشكلات ، تحتوي حاوية IoC الآن على مستوى آخر من التفاصيل ، مما يسمح لك بإنشاء نطاقات حقن جديدة - النطاق العابر ونطاق الطلب.

→ يمكنك قراءة المزيد عنها
هنا.منصة
Nest هو إطار عمل متكامل ومستقل عن المنصة. بفضل هذا ، يمكن للمطورين إنشاء كتل منطقية يمكن إعادة استخدامها في أنواع مختلفة من التطبيقات. مع Nest ، يمكنك بسهولة إنشاء تطبيق ويب وأداة مساعدة لوحدة التحكم وقائمة انتظار عمل وأي شيء عمومًا! لقد أخذنا جميع الوظائف المتعلقة بالنظام إلى حزم منفصلة مثل
@nestjs/platform-express
، والآن يمكنك كتابة كود أقل. فقط قم بتثبيت كل ما تحتاجه لتطبيقك!
أحداث
في السابق ، تم تشغيل كل قناة اتصال لخدمة microservice بناءً على نموذج طلب / استجابة. كان هذا النوع من آليات التفاعل مثاليًا للمراسلة بين خدمات خارجية متعددة. عند رؤية التأكيد ، يمكنك التأكد من أن الخدمة قد استلمت الرسالة بالفعل.
ومع ذلك ، في بعض الأنظمة ، ليس من الضروري إنشاء قنوات ثنائية الاتجاه ، لأن هذا يؤدي إلى حمل غير ضروري عندما تحتاج فقط إلى نشر حدث (دون طلب أي إجابة). هذا هو السبب في أننا قدمنا الرسائل القائمة على الأحداث . بفضل هذا النموذج ، يكفي إخطار مختلف الخدمات برسالة إذا كان ، على سبيل المثال ، قد نشأ موقف معين في مكان ما في النظام.

كما تبين أن هذا الحل في المستقبل سيوفر فرصة لدمج منصات المراسلة الأكثر تعقيدًا. اتبع الأخبار!
GraphQL ♡ TypeScript
واحدة من أكثر المشاكل شيوعًا في GraphQL هي التكرار النوعي. لحل هذه المشكلة في إصدار سابق من Nest ، أضفنا مترجمًا يحول التعاريف المكتوبة في SDL إلى واجهات (أو فئات) لـ TypeScript.
يضم الإصدار 6.0.0
type-graphql
حزمة
type-graphql
التي تتيح لك إنشاء ملفات GraphQL مع أدوات تزيين TypeScript وحدها! الآن هناك طريقتان للاختيار من بينها ، ويمكنك أن تقرر بنفسك ما هو أكثر ملاءمة لاحتياجات محددة. يتم توفير كلا النهجين في
@nestjs/graphql
.

→ المزيد عن هذا
هناCLI
تم تحديث حزمة Nest Angular DevKit الأساسية ، مما يعني أن واجهة سطر الأوامر تعرض الآن تلميحات . علاوة على ذلك ، أضفنا دعمًا لـ nest g lib
، مما سيساعد في تبسيط التطوير عند استخدام مستودع واحد.
الوثائق
تم إعادة تصميم وثائق Nest الرسمية وهي الآن مكتوبة بالكامل في تخفيض السعر . في رأينا ، سيكون من الأسهل بكثير العمل مع الوثائق ، وفي الوقت المناسب سنكون قادرين على جعلها أفضل.
الشركاء والمجتمع
خبر سار : تدعم وحدة التحكم الزاوي (واجهة المستخدم لـ Angular CLI) Nest!

يصبح Nest الحل الأول لإنشاء تطبيقات عقدة منظمة وقابلة للتطوير في المستودع الزاوي.
بالإضافة إلى ذلك ، أطلقنا مؤخرًا قناة Discord الرسمية. اشترك في القناة والانضمام إلى مناقشة عش وغيرها من المواضيع المثيرة للاهتمام!
الهجرة من العش 5
اتبع التعليمات لترحيل المشاريع الحالية. يجب عليك التخلص من أي تحذيرات بشأن عدم الرغبة في استخدام أي جزء من البرنامج قد يظهر في وحدة التحكم.
دعم
Nest عبارة عن مشروع مرخص من MIT مفتوح المصدر. تم تطويرها الحالي بفضل دعم المجتمع الراعي الرئيسي - Valor Software وغيرها من الشركات. في الآونة الأخيرة ، انضم اثنان من الرعاة الآخرين إلى هذه القائمة - Blueanchor و NovoLogic . شكرا لك
كان علينا أن نقطع شوطا طويلا ، والعمل في وقت متأخر من عطلة نهاية الأسبوع وعدم النوم لعدة أيام ، بحيث ولد إطارنا. أعتقد أن حسن النية ينقذ العالم! ️
إذا كنت ترغب في المساهمة في مشروعنا ، فاتبع الرابط .
الخطط المستقبلية
لا تزال هناك بعض النقاط في النظام البيئي التي أود تحسينها.

لدي بالفعل العديد من الأفكار المخطط تنفيذها في الأشهر المقبلة.
- نود إعادة كتابة وحدة Swagger لاستخدام TypeScript AST. سيضيف هذا العديد من الميزات المفيدة الجديدة. اقرأ المزيد عنها هنا .
- أمثلة مصادقة أكثر تعقيدًا في العالم الحقيقي لمختلف مقدمي الخدمات.
- نشر التطبيقات دون خادم وأكثر DevOps!
- بالطبع الفيديو الرسمي!
- المقالات التعليمية.
شكر
شكرا للرعاة والمجتمع وكل المعنيين! نقوم بتصميم منتجاتنا
لك ، ونحن فقط في بداية رحلة طويلة.