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

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

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

ابدأ الدورة

مقدمة: لماذا نحتاج إلى مراجعة الكود في PHP؟

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



1. ما يجب التحقق منه في كود PHP: الفئات الرئيسية

لجعل المراجعة منظمة، قسّم الفحص إلى عدة مجالات رئيسية. سيساعدك ذلك على عدم تفويت التفاصيل المهمة وإعطاء المؤلف توصيات واضحة.



1.1. بناء الجملة ومعايير الترميز (PSR)

أول ما يلفت الانتباه هو أسلوب الكود. طور مجتمع PHP معايير PSR (توصيات معايير PHP) التي تسهل قراءة الكود وصيانته. تحقق من:

  • الامتثال لـ PSR-12 (المسافات البادئة، الفراغات، الأقواس المتعرجة).
  • تسمية الفئات (CamelCase)، والطرق والمتغيرات (camelCase).
  • عدم وجود فراغات زائدة أو أسطر فارغة.

مثال على أسلوب سيء:

class userController{function getUser($id){return $id;}}

مثال على أسلوب جيد (PSR-12):

class UserController{    public function getUser(int $id): ?User    {        return $id;    }}


1.2. الأمان

PHP هي لغة يسهل فيها ارتكاب ثغرات أمنية. تحقق بعناية خاصة من:

  • حقن SQL: استخدم الاستعلامات المُعدة (PDO أو mysqli)، وليس ربط السلاسل النصية.
  • XSS (البرمجة النصية عبر المواقع): قم بتأمين المخرجات باستخدام htmlspecialchars().
  • التحقق من الأنواع: استخدم الكتابة الصارمة (declare(strict_types=1);).

مثال على كود غير آمن:

$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];$result = mysqli_query($conn, $sql);

البديل الآمن:

$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');$stmt->execute(['id' => (int)$_GET['id']]);


1.3. الأداء والمنطق

تحقق مما إذا كان الكود يقوم بعمليات غير ضرورية. على سبيل المثال:

  • تجنب الاستعلامات داخل الحلقات التكرارية — استخدم JOIN أو الاستعلامات الفرعية.
  • لا تستخدم @ لكبت الأخطاء — فهذا يخفي المشاكل.
  • تحقق من أن الدوال لا تقوم بالكثير من المهام (مبدأ المسؤولية الفردية).

مثال على كود بطيء:

foreach ($userIds as $id) {    $user = User::find($id); // N استعلامات}

البديل المُحسّن:

$users = User::whereIn('id', $userIds)->get(); // استعلام واحد


2. كيفية تقديم الملاحظات: قواعد للمبتدئين

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



2.1. كن محددًا وموضوعيًا

بدلاً من "هذا الكود سيء"، اكتب: "في السطر 12، يتم استخدام ربط SQL، مما قد يؤدي إلى حقن. أوصي باستبداله باستعلام مُعد". اشرح لماذا هذه مشكلة، وليس فقط الإشارة إليها.



2.2. استخدم "ساندويتش" الملاحظات

ابدأ بتعليق إيجابي، ثم أشر إلى العيوب، واختتم بنصيحة بناءة. على سبيل المثال:

"رائع أنك استخدمت الكتابة الصارمة للوسائط! ومع ذلك، فإن طريقة getUser() تُرجع سلسلة نصية بدلاً من كائن User — قد يؤدي ذلك إلى كسر الكتابة في أماكن أخرى. أقترح تغيير النوع المُعاد إلى User أو null."



2.3. قدم بدائل بدلاً من النقد

بدلاً من "أزل هذه الحيلة القبيحة" ا

المدونات

توصيات الكتب