مراجعة الكود في JavaScript: ما يجب التحقق منه وكيفية تقديم الملاحظات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مراجعة الكود في JavaScript: ما يجب التحقق منه وكيفية تقديم الملاحظات للمبتدئين

\n\n

مراجعة الكود (أو كود-ريفيو) هي عملية فحص الكود البرمجي بواسطة مطور واحد أو أكثر قبل دمجه في الفرع الرئيسي للمشروع. بالنسبة للمبتدئين، قد تبدو هذه العملية مخيفة: "ماذا لو فاتني خطأ؟"، "كيف أقول لزميلي أن كوده سيء دون إفساد العلاقة؟".

\n\n

في هذه المقالة، سنناقش ما يجب التركيز عليه أثناء مراجعة الكود في JavaScript (بما في ذلك Node.js)، وكيفية تقديم ملاحظات مفيدة وليست مسيئة. المادة موجهة للمطورين المبتدئين الذين بدأوا للتو في المشاركة في المراجعات.

\n\n

ما يجب التحقق منه في كود JavaScript: قائمة مرجعية للمبتدئين

\n\n

لجعل المراجعة منظمة، سنقسم الفحص إلى عدة أقسام رئيسية. لا تحاول تغطية كل شيء دفعة واحدة - ابدأ بالنقاط الأكثر أهمية.

\n\n

1. الوظائف والمنطق

\n

أولاً وقبل كل شيء، تأكد من أن الكود يحل المهمة المطلوبة. قم بتشغيله محليًا (إذا أمكن) أو اتبع جميع مسارات التنفيذ ذهنيًا. إليك الأسئلة النموذجية:

\n
    \n
  • هل يتم التعامل مع الحالات الحدودية بشكل صحيح (مصفوفة فارغة، null، undefined)؟
  • \n
  • هل توجد "أرقام سحرية" (أرقام بدون شرح، مثل if (x > 86400) بدلاً من const ONE_DAY_IN_SECONDS = 86400)؟
  • \n
  • هل يعمل الكود غير المتزامن بشكل صحيح (Promise، async/await)؟
  • \n
\n\n
// سيء: رقم سحري\nif (user.lastLogin < Date.now() - 86400000) { ... }\n\n// جيد: ثابت باسم\nconst ONE_DAY_MS = 24 * 60 * 60 * 1000;\nif (user.lastLogin < Date.now() - ONE_DAY_MS) { ... }
\n\n

2. أسلوب الكود والتنسيق

\n

على الرغم من أن العديد من المشاريع تستخدم Prettier و ESLint، إلا أنه يجب التحقق يدويًا من:

\n
    \n
  • الالتزام بأسلوب موحد (المسافات البادئة، علامات الاقتباس، الفواصل المنقوطة).
  • \n
  • تسمية صحيحة للمتغيرات والدوال والكلاسات (camelCase للمتغيرات، PascalCase للكلاسات).
  • \n
  • عدم وجود كود معلق - فهو يسبب فوضى في الملف فقط.
  • \n
\n\n
// سيء: اسم غير مفيد\nconst d = new Date();\nconst arr = getData(d);\n\n// جيد: الاسم يصف المحتوى\nconst currentDate = new Date();\nconst usersData = fetchUsersData(currentDate);
\n\n

3. الأداء والأمان

\n

بالنسبة لـ Node.js، من المهم بشكل خاص:

\n
    \n
  • تجنب العمليات الحاجبة في الخيط الرئيسي (قراءة الملفات المتزامنة، الحلقات الثقيلة).
  • \n
  • التحقق من تسرب الذاكرة (مثل المؤقتات المنسية أو مستمعي الأحداث).
  • \n
  • التحقق من صحة إدخال المستخدم (الحماية من حقن SQL، XSS).
  • \n
\n\n
// سيء: القراءة المتزامنة تحجب Event Loop\nconst data = fs.readFileSync('bigfile.json', 'utf8');\n\n// جيد: قراءة غير متزامنة\nconst data = await fs.promises.readFile('bigfile.json', 'utf8');
\n\n

كيفية تقديم الملاحظات: مبادئ المراجعة البناءة

\n\n

الآن بعد أن عرفت ما يجب التحقق منه، دعنا نناقش المهارة الرئيسية لمراجعة الكود - القدرة على توصيل الملاحظات. هدفك هو تحسين الكود، وليس تأكيد نفسك على حساب المؤلف.

\n\n

1. كن محددًا ومدعومًا بالحجج

\n

بدلاً من "هذا الكود سيء"، اكتب: "هناك مشكلة محتملة في الأداء هنا: استدعاء Array.find() في حلقة يعطي تعقيدًا O(n²). دعنا نستبدله بـ Map". سيفهم المؤلف ما هو الخطأ بالضبط وكيفية إصلاحه.

\n\n

2. استخدم "رسائل الأنا" واطرح الأسئلة

\n

الصياغات مثل "لست متأكدًا من أن هذا الكود سيعالج حالة المصفوفة الفارغة. هل يمكننا إضافة تحقق؟" تبدو أكثر لطفًا من "لقد نسيت معالجة المصفوفة الفارغة". هذا يقلل من رد الفعل الدفاعي ويحفز الحوار.

\n\n

3. امدح الحلول الجيدة

\n

مراجعة الكود ليست مجرد نقد. إذا رأيت حلاً أنيقًا أو بنية ممتازة، فتأكد من الإشارة إلى ذلك. على سبيل المثال: "فكرة رائعة لاستخراج

المدونات

توصيات الكتب