الدروس التعليمية

تحديث تطبيق Node.js

تعلم استخدام IBM Bob لتحديث التطبيقات بترقية واجهة Node.js Express API من الإصدار 16 إلى 22. جرّب التطوير بمساعدة الذكاء الاصطناعي مع الأوضاع والموافقات والترميز الأدبي في هذا الدرس العملي.

مقدمة

Bob هو شريك ذكاء اصطناعي في دورة حياة تطوير البرمجيات (SDLC) يعزز سير عملك الحالي. في هذا الدرس، ستتعلم بعض الميزات الجوهرية لـ Bob من خلال تحديث واجهة Express API بـ TypeScript من Node.js 16 إلى Node.js 22. لا تحتاج إلى خبرة في Node.js أو TypeScript لإكمال الدرس. ستتعلم كيف يُحلِّل Bob التبعيات ويُحدِّث أنماط الكود.

الميزات الرئيسية التي ستتعلمها

Bob يوفر أربع قدرات أساسية تستخدمها أثناء ترقية الـ API:

  • الأوضاع: شخصيات متخصصة تُكيِّف سلوك Bob لمهام محددة.
  • Context mentions: الإشارة إلى عناصر مشروع محددة في المحادثات مع Bob، مثل الملفات والمجلدات أو Git commits.
  • سير عمل الموافقة: مراجعة كل أداة يخطط Bob لاستخدامها قبل تنفيذها.
  • الترميز الأدبي: كتابة الكود مع Bob مباشرةً في محررك. اكتب التعليمات بلغة عادية في المكان الذي يجب أن يكون الكود فيه.

المتطلبات الأساسية

يستخدم هذا الدرس واجهة TypeScript Express REST API كمشروع نموذجي. لكنك لا تحتاج إلى خبرة في Node.js أو TypeScript.

لإكمال هذا الدرس، تحتاج إلى تحقيق المتطلبات الأساسية التالية:

  • Docker مثبت وشغّال على محطة العمل الخاصة بك. ستستخدم Bob لإنشاء Dockerfile للتطبيق.
  • Bob IDE مثبت.
  • أكملت درس البدء السريع للتعرف على واجهة Bob وميزاته.
  • قد ترغب في بدء نافذة سياق جديدة لهذا الدرس. راجع درس إنشاء نافذة سياق جديدة للحصول على التعليمات.

إعداد مساحة عملك

شغّل IBM Bob واستنسخ المستودع النموذجي للبدء في العمل مع تطبيق Node.js الذي ستُحدِّثه.

تشغيل IBM Bob

شغّل تطبيق IBM Bob.

فتح الشريط الجانبي لـ Bob

إذا لم يكن الشريط الجانبي لـ Bob مفتوحاً بالفعل، افتحه بالنقر على أيقونة Bob بجانب شريط التنقل أو استخدم الاختصار Option + Command + B (Mac) أو Ctrl + Alt + B (Windows).

الشريط الجانبي لـ Bob مفتوح في IBM Bob IDE

استنساخ مستودع الدرس

استنسخ المستودع الذي يحتوي على التطبيق النموذجي بالنقر على أيقونة الملفات في أعلى يسار لوحة IBM Bob IDE. ثم انقر على Clone Repository، والصق مستودع GitHub التالي في شريط البحث. سيسألك Bob عن المكان الذي تريد حفظ المستودع فيه. يمكنك حفظه في أي مكان تريد.

https://github.com/IBM/bob-demo.git

استنساخ المستودع في Bob IDE

فتح المستودع

عندما يسألك Bob إذا كنت تريد فتح المستودع المستنسخ انقر على Open. إذا سأل Bob "Do you trust the authors of the files in the folder?"، انقر على Yes, I trust the authors.

لاحظ ملفات المشروع في المستكشف والشريط الجانبي لـ Bob على الجانب الأيمن من بيئة التطوير.

ملفات المشروع معروضة في المستكشف مع الشريط الجانبي لـ Bob

تعطيل الموافقة التلقائية

تأكد من إيقاف الموافقة التلقائية. يمكنك إيجاد هذا الإعداد في Permissions. مع إيقاف الموافقة التلقائية، يطلب Bob إذنك قبل تنفيذ أي تغييرات مقترحة. هذا يضمن بقاءك في السيطرة على جميع التعديلات على قاعدة الكود الخاصة بك.

بناء البيئة المُحاوَطة

أنشئ Dockerfile لتشغيل التطبيق في بيئة حاويات، مما يُلغي الحاجة إلى تثبيت Node.js أو التبعيات محلياً.

التبديل إلى وضع Agent

بدّل Bob إلى وضع Agent بالنقر على القائمة المنسدلة للوضع واختيار Agent.

الأوضاع هي إحدى طرق احترام Bob لمبدأ أقل صلاحية. كل وضع يمنح Bob إذناً لاقتراح مجموعة محددة من المهام نيابةً عنك. وضع Agent يسمح لـ Bob بكتابة وتعديل وإعادة هيكلة الكود. لا يزال Bob يطلب الإذن قبل كل عملية.

إنشاء Dockerfile

أدخل طلباً في واجهة دردشة Bob لطلب إنشاء Dockerfile.

Create a Dockerfile for this Node.js TypeScript application. 
It should use Node 16 to match the current application version, build the TypeScript code, and run the app on port `3000`.

يطلب Bob الوصول للقراءة إلى عدة ملفات لفهم متطلبات Dockerfile. انقر على Approve لمنح Bob إذناً لقراءة تلك الملفات.

يُحدِّد Bob الهيكل المناسب لـ Dockerfile ويعرض عليك الملف المقترح. تظهر أزرار الإجراء فوق حقل إدخال الدردشة. انقر على Save لإنشاء الملف.

التحقق من بناء التطبيق القديم

قبل التحديث، تحقق من أن الكود القديم يُبنى ويعمل بشكل صحيح. هذا الأساس يضمن قدرتك على تحديد أي مشاكل يُدخلها التحديث.

في واجهة دردشة Bob، أخبر Bob ببناء التطبيق واختباره.

Build and test the legacy application using Docker to verify it works correctly before modernization. The application should respond to API requests at /api/todos with sample data.

After testing, clean up the container.

بمجرد التحقق من عمل التطبيق، لديك خط أساس محقَّق للمقارنة بعد التحديث.

استكشاف قاعدة كود Node.js مع وضع Ask في Bob

قبل التحديث، انقر على القائمة المنسدلة لمحدد الوضع وبدّل إلى وضع Ask في Bob. وضع Ask يمكنه فقط قراءة الملفات، لذا يمكنك استكشاف الكود بأمان دون إجراء تغييرات عن طريق الخطأ. يمكنك أيضاً كتابة /ask في دردشة Bob للتغيير إلى وضع Ask.

استخدام @ context mentions لمراجعة المشروع

يدعم Bob @ context mentions التي تتيح لك الإشارة إلى ملفات أو مجلدات أو مشاكل محددة مباشرةً في طلباتك. تمنح mentions السياق Bob معلومات دقيقة حول ما تريد مناقشته.

استكشف ملفات package.json وtsconfig.json وDockerfile من خلال إخبار Bob صراحةً بالملفات التي يجب تحليلها باستخدام @ mentions.

في واجهة دردشة Bob، نفّذ الطلب التالي:

@package.json What Node.js version is this project using? What dependencies would need updating for Node.js 22? Give me a short summary.

رمز @ يُخبر Bob بتضمين package.json كسياق. يُحدِّد Bob التحديثات المطلوبة ويُعيد ملخصاً.

تحليل تكوين TypeScript

اطلب من Bob تحليل تكوين TypeScript للمشروع.

@tsconfig.json What module system and compiler settings is this TypeScript project using? What dependencies would need updating for Node.js 22? Give me a short summary.

تحليل Dockerfile

اطلب من Bob تحليل Dockerfile للمشروع.

@Dockerfile What Node.js version does this Dockerfile use? What would need to change for Node.js 22? Give me a short summary.

الآن تفهم ما يحتاج إلى التحديث. في القسم التالي، تبدّل إلى وضع Agent واطلب من Bob إجراء التغييرات.

تحديث الـ API مع وضع Agent في Bob

حدّد Bob متطلبات التحديث التالية لـ package.json وtsconfig.json وDockerfile:

  • تغيير Node.js 16 إلى Node.js 22 في package.json وDockerfile
  • تحديث هدف ووحدة مُترجِم TypeScript
  • إصلاح إصدارات التبعيات القديمة

لبدء تحديث التطبيق، بدّل مرة أخرى إلى وضع Agent حتى يتمكن Bob من إجراء تغييرات الكود.

في واجهة دردشة Bob، نفّذ طلب التحديث التالي. لاحظ المراجع @ التي تُوجِّه Bob إلى الملفات المحددة التي يعمل عليها.

@package.json @tsconfig.json @Dockerfile

Modernize this Express API from Node.js 16 to Node.js 22. Keep the API functionality identical - this is a platform upgrade, not a feature change. Give me a short summary.

بعد انتهاء Bob من التحديث والاختبار، يعرض Bob ملخصاً للتغييرات. لقد قمت أنت وBob بتحديث التطبيق.

Dockerfile — تم تغيير سطرين

- مرحلتا `FROM node:16-alpine` أصبحتا `node:22-alpine`

package.json — تم تغيير ثلاثة حقول

- `engines.node`: من `16.x` إلى `22.x`
- `@types/node`: من `^16.18.0` إلى `^22.0.0`
- `typescript`: من `^4.9.5` إلى `^5.0.0`

tsconfig.json — تم تغيير أربعة إعدادات

- `target`: من `ES2020` إلى `ES2023`
- `lib`: من `["ES2020"]` إلى `["ES2023"]`
- `module`: من `commonjs` إلى `node16`
- `moduleResolution`: من `node` إلى `node16`

ملاحظة مهمة أثناء البناء: يفرض TypeScript 5 اتساق `module` و`moduleResolution`؛ إذ يتطلب `moduleResolution: "node16"` استخدام `module: "node16"` وليس `commonjs`. يظل الناتج المترجم متوافقاً مع CommonJS؛ ويؤثر ذلك فقط في كيفية حل TypeScript للاستيرادات أثناء فحص الأنواع.

تمييز اكتمال التحديث

استخدم ميزة الترميز الأدبي في Bob لتحديث عنوان المهمة النموذجية، مع تمييز التطبيق على أنه مُحدَّث. الترميز الأدبي يتيح لك كتابة التعليمات بلغة عادية مباشرةً في محررك بدلاً من استخدام واجهة الدردشة.

تمكين وضع الترميز الأدبي

في تبويب المستكشف على الجانب الأيسر من الشاشة، انتقل إلى مجلد express-todo-api وانقر على src/db.ts لفتحه في المحرر. بمجرد فتح src/db.ts، فعّل وضع الترميز الأدبي بالنقر على أيقونة عصا السحر في شريط أدوات المحرر. بدلاً من ذلك، يمكنك الضغط على Cmd + I على Mac أو Ctrl + I على Windows وLinux.

كتابة تعليماتك

في ملف src/db.ts المفتوح في محررك، الصق التعليمات التالية في أعلى الملف، قبل أي كود:

// Find the sample todo object's title property and change it to "Welcome to the Modernized Node.js 22 API"

يفهم Bob أن هذا التعليق هو تعليمات وليس كوداً عادياً لأنك في وضع الترميز الأدبي. تظهر تعليماتك مُظلَّلة في المحرر.

توليد الكود

انقر على Generate في أسفل المستند.

يُحدِّد Bob كائن sampleTodo في المُنشئ ويعرض عليك التغيير. ترى تغيير العنوان من:

قبل:

title: "Learn Node.js modernization"

بعد:

title: "Welcome to the Modernized Node.js 22 API"

قبول التغييرات

انقر على Accept all في أسفل المستند حيث نقرت على Generate لتطبيق التغيير على الملف.

الخروج من وضع الترميز الأدبي

انقر على Exit تحت عصا السحر الأدبية في أعلى الملف للخروج من وضع الترميز الأدبي.

لقد حدّثت الـ API باستخدام الترميز الأدبي. عند اختبار الـ API في القسم التالي، سترى هذا العنوان الجديد في استجابة API.

التحقق من التطبيق المُحدَّث مع Docker

تحقق من تحديث الكود وتغيير الترميز الأدبي من خلال إعادة بناء واختبار حاوية Docker.

بدّل مرة أخرى إلى وضع Agent وصف ما تريد من Bob التحقق منه:

Verify the modernized Node.js 22 application works by building and testing it with Docker. Check that the API responds at /api/todos and shows the updated todo title. Clean up when done. Give me a short summary. I also want to see the validation of the new title.

بمجرد تحقق Bob من تحديث التطبيق، يمنحك ملخصاً يؤكد نجاح تحديث Node.js 22.

✅ **اكتمل التحقق بنجاح — تم تحديث Node.js 22**

**نتائج البناء والاختبار:**
- تم بناء صورة Docker بنجاح باستخدام Node.js 22
- اكتمل تجميع TypeScript بلا أخطاء
- بدأ التطبيق واستجاب بشكل صحيح

**التحقق من API:**
{
  "id": "72459851-7953-4a9c-94d3-4f8f1c656d21",
  "title": "Welcome to the Modernized Node.js 22 API",
  "completed": false,
  "createdAt": "2026-02-16T16:35:49.132Z"
}

**تم التأكيد:**
- ✅ يظهر عنوان المهمة المحدّث بشكل صحيح: "Welcome to the Modernized Node.js 22 API"
- ✅ تستجيب نقطة نهاية API ‏`/api/todos` بنجاح
- ✅ تعمل جميع الوظائف على Node.js 22
- ✅ اكتملت عملية التنظيف (إزالة الحاوية والصورة)

الخطوات التالية

في هذا الدرس، تعلمت كيفية تحديث Express API من Node.js 16 إلى Node.js 22 باستخدام Bob. حلّل Bob تبعياتك، وحدّث ملفات التكوين، وحدّث إعداد Docker مع الحفاظ على جميع الوظائف.

  • تعلم عن ميزة مراجعة الكود /review في Bob للإمساك بالمشاكل المحتملة قبل عمل commit لعملك.
  • تعلم عن الأوضاع، وهي شخصيات متخصصة تُكيِّف سلوك Bob لمهامك المحددة.
  • تعلم كيفية استخدام واجهة دردشة Bob وهي الطريقة الرئيسية للتفاعل مع Bob.

ثم، تقدم عبر سلسلة دروس البدء مع IBM Bob لمعرفة المزيد عن ميزات وقدرات Bob.

ما رأيك في هذا الموضوع؟