نظرة عامة على فحص الكود (Code Inspection)
كان الحديث في موضوعات سابقة عن كيفيّة مراجعة الكود بشكل فعّال. أما في هذا الموضوع، سيكون حديث جيسون كوهين عن مراجعة الكود من خلال استخدام طريقة فحص الكود.
فحص الكود (Code Inspection) هو نوع من المراجعة الرسميّة للكود. يَستخدِم هذا النوع من المراجعة أدوار الفريق المحدّدة (roles) والقياس (measurement) لتحديد الأخطاء والعيوب في الكود وتحسين عملية المراجعة وعملية تطوير البرمجيات.
فحص الكود هو عملية ثقيلة الوزن (heavyweight) في أفضل حالاتها وتتكوّن من سبع مراحل:
المرحلة الأولى: مرحلة التخطيط
في هذه المرحلة، يقوم المؤلّف (المبرمج الذي كتب الكود) بجمع الأكواد والتأكد من استيفائها لمعايير الدخول المحددة مسبقًا. كذلك يقوم بتحديد من سيشارك في فحص الكود. هنالك أربعة مشاركين لهم أربعة أدوار متميّزة: المؤلّف (Author) والمشرف (Moderator) والمراجِع (Reviewer) والقارِئ (Reader). في بعض الأحيان يكون هنالك مراقِب (Observer). يجب دعوة جميع المشاركين إلى الاجتماع الأول من عدّة اجتماعات ويجب جدولة هذا الاجتماع مع جميع المشاركين.
المرحلة الثانية: مرحلة المقدّمة
يبدأ هذا الاجتماع الأول مرحلة المقدّمة حيث يشرح المؤلّف الخلفية والدوافع والأهداف الخاصة بالمراجعة. يحصل جميع المشاركين على نُسَخ مطبوعة من الكود ويحدّد المشاركون الاجتماع التالي ويغادرون.
المرحلة الثالثة: مرحلة القراءة
هذه مرحلة القراءة حيث يقرأ كل شخص مشارِك الكود ولكن كل دور يقرأ لغرض مختلف – وهذا مهم جدًا – ولا أحد يقوم بتحديد العيوب في هذه المرحلة.
المرحلة الرابعة: مرحلة الفحص (Inspection)
عندما ينعقد الاجتماع التالي تبدأ مرحلة الفحص. يحدّد المشرف وتيرة هذا الاجتماع ويتأكّد من أن الجميع يؤدّون دورهم ولا يفسدون أي شيء بالهجمات الشخصية (personal attacks). يقدّم القارئ الكود لأن وظيفته هي القراءة من أجْل الفهم حيث أن سوء فهم شخص آخر غالبًا ما يشير إلى وجود خطأ في الكود. أثناء الاجتماع، يتم الاحتفاظ بسِجل العيوب حتى يعرف المؤلّف ما يجب إصلاحه. وقبل انتهاء الاجتماع، يقوم المشاركون بإكمال نموذج تقييم من شأنه أن يساعد في تحسين عملية المراجعة لاحقًا.
المرحلة الخامسة: مرحلة إعادة العمل (Rework)
إذا تم العثور على عيوب في الكود، يدخل فحص الكود في مرحلة إعادة العمل حيث يقوم المؤلّف بإصلاح العيوب والمشاكل في الكود.
المرحلة السادسة: مرحلة التحقّق
بعد ذلك ستكون هناك مرحلة تحقّق للتأكّد من أن الإصلاحات كانت مناسبة ولم تفتح عيوبًا جديدة.
المرحلة السابعة: مرحلة الاكتمال (Completed)
أخيرًا يمكن أن يدخل فحص الكود إلى مرحلة الاكتمال.
الخبر السار هو أن فحص الكود بهذه الطريقة يعمَل. فهو يكشف عن العيوب ويساعد عند تدريب الموظفين الجدد ويمكن النظر في الإجراء والعمل على تحسينه. أما الأخبار السيئة فهي تأتي مع منهجيّة الأجايل (Agile). تشير الدراسات إلى أن متوسّط فحص الكود يستغرق 9 ساعات عمل لكل 200 سطر من الكود ولِذا سيكون من الصعب القيام بفحص الكود مع كل تغيير فيه.
على مر السنين، كانت هناك تجارب ودراسة حالات (case studies) وكُتُب حول هذا الموضوع وغالبًا ما تستخدم شكلاً من أشكال فحص الكود كأساس. وفي مَسْحِنا (survey) لدراسة الحالات والتجارب المنشورة في السنوات العشرين الماضية، وجدنا أن 95% منهم جرّبوا عمليات فحص الكود فقط في مجموعات تجريبية صغيرة وأنهم لم يتمكّنوا بأي حال من الأحوال من تطبيق هذه التقنية على كل مشاريع تطوير البرمجيات الخاصة بهم.
تم استخدام الأسلوب الخفيف (lightweight) لمراجعة الكود في برنامج تجريبي (pilot program) مع مجموعة تطوير واحدة. أظهرت المقاييس (metrics) التي خرجت من تلك المجموعة فعالية هذا الأسلوب وفي غضون 18 شهرًا تم اعتماد هذا الأسلوب عبر المؤسسة بأكملها. هذا الأسلوب الخفيف هو ماسنتحدّث عنه في الموضوع القادم إن شاء الله.
بالتوفيق للجميع…
* المصدر: https://www.methodsandtools.com/archive/archive.php?id=66
** الصورة من موقع: https://github.com
لا توجد تعليقات