كيف تراجع الكود بشكل فعال؟ 3

كيف تراجع الكود بشكل فعال؟ 3

في الموضوع السابق تحدّثنا عن بعض الاقتراحات حول كيفيّة تحويل مراجعة الكود وجَعْلها تجربة إيجابيّة وتعاونيّة من خلال بعض الأمور التي يجب أن لا تفْعَلها. أما في هذا الموضوع، فسوف نتحدّث عن ما يمكنك فِعْلُه من أجْل أن تكون مراجعة الكود أكثر فعاليّة.

من المهم في البداية أن تكون لديك معايير كتابة للكود شاملة وموثّقة (comprehensive documented coding standards). هذه المعايير هي عبارة عن اتفاقية مشتركة بين المبرمجين مع بعضهم البعض وهي مجموعة مشتركة من الإرشادات مع قناعة من الجميع حوْل ما الذي يجعل الكود عالي الجودة ويمكن صيانته (maintainable). تشكّل هذه المعايير أساس مراجعة الكود وبمعنى آخر أي أنك تقوم بمراجعة الكود وفقًا لها.

بدون المشروع المشترك لمعايير كتابة الكود كمَرْجِع، يمكن للمبرمجين أن يجدوا أنفسهم لا يعرفون من أين ستأتي المشكلة التالية في مراجعة الكود. هذا لا يمكّن المبرمجين من المساهمة بفعاليّة. أيضًا يجب الإشارة إلى أن معايير كتابة الكود يجب أن تكون شاملة ولا تقتصر فقط على نمط تنسيق الكود.

الآن دعونا نتحدّث عن ما يمكنك فِعْلُه من أجل أن تكون مراجعة الكود أكثر فعاليّة:

  • مَدْح الكود الجيّد

تذكّر أن تقضي الكثير من الوقت في مدْح ما هو جيد في الكود قبل الإشارة إلى المشاكل وتقديم الاقتراحات. أنت تريد أن يتطلّع الناس إلى مراجعة الكود كتجربة إيجابية وبنّاءة ولا يخشونها كنقد خالِص. تعمل التعليقات الإيجابية أيضًا على تخفيف التوتّرات الشخصية وتساعد الأشخاص على الاستجابة بشكل أفضل لأي ملاحظات نقدية.

الجزء الصعب هو العثور على طريقة لإعطاء تعليقات إيجابية دون جعْلها تبدو وكأنها مدْح مزيّف. يمكنك أن تمدح كثير من الأجزاء أو الجوانب المحدّدة من الكود الجيّد وحاوِلْ أن توضّح سبب إعجابك بها. أيضًا تجنّب الإطراء الخادع فقد تبدو عبارات مثل عمل رائع، لكن … (متبوعة بجميع التغييرات التي تريدها) غير صادِقة.

أخيرًا، إنّ رؤية مبرمج آخر يُظهِر فِهْمًا لعملك هو في حد ذاته شكل من أشكال التحقّق من صحّة العمل وإذا كان هنالك أجزاء من الكود غير مفهومة فيمكن طلب تفسير.

  • ضَعْ ملخّصًا إيجابيًا

قُمْ بالإشارة إلى أنك سعيد وممتن للكود. تجعل ميزات مراجعة الكود الجديدة في GitHub هذا الأمر أسهل بكثير من خلال السماح لك بكتابة تعليقات متعدّدة الأسطر ثم نشرها جميعًا مرة واحدة (بدلاً من نشْر كل تعليق بمجرد حفظه) أيضًا من خلال السماح لك بإضافة ملخّص (يظهر في أعلى المراجعة) قبل نشْر التعليقات.

  • تجنّب الاتهامات الكامِنة

اطرحْ أسئلة بدلاً من توجيه الاتهامات الكامِنة. سيؤدّي طرْح الأسئلة إلى تحسين الحالة المزاجيّة وتغيير نغمة المحادثة التالية عن طريق فتْح الباب للحوار والتعلّم وتشجيع المبرمج على شرح أسبابه أو سؤال نفسه عما إذا كانت هناك طريقة أفضل لكتابة الكود. من الناحية المثاليّة، ستكون نتيجة الأسئلة هي العثور على الخطأ وتصحيحه بواسطة المبرمج الذي كتب الكود وكذلك اقتراح التحسينات على الكود في حال كانت موجودة. فيما يلي أمثلة على الاتهامات الكامِنة:

– لمْ تتّبع المعايير هنا
– هذا خطأ، استخدم B بدلاً من ذلك
– هذا الكود مُحيّر
– لمْ تقم بتهيئة هذه المتغيّرات (variables not initialized)

وهنا كيف يمكن تحويلها إلى شكل جيّد:

– ما هو السبب وراء الطريقة التي استخدمتها؟
– ما هو رأيك في استخدام A بدلاً من B؟
– لمْ أفهم هذا الشيء. هل يمكنك توضيح ذلك لي؟
– لمْ أرى أين تمّت تهيئة هذه المتغيرات

  • تجنّب الاتهام بالسؤال لماذا

يمكن أن يكون السؤال بكلمة لماذا فيه توجيه للاتهام. مثال ذلك:

– لماذا لم تتّبع المعايير هنا؟
– لماذا لم …؟

هنا كيف يمكن تحويلها إلى شكل جيّد:

– ما هو السبب وراء الانحراف عن المعايير هنا؟
– ما الذي كان يدور في بالك عندما …؟

  • كُنْ متواضعًا

بدلاً من مجرّد إخبار المبرمج بإجراء تغيير تريدُه، اطرح عليه سؤالاً حوْل الكود الخاص به أو قدّم اقتراحًا واسأله عما إذا كان يعتقد أنه سيكون تحسينًا. هذا يضع الكرة في ملعبه ويمنحه فرصة لشرح قراراته أو لتأكيد ما إذا كان يعتقد أن الاقتراح يمثّل تحسينًا. أيضًا عند تقديم اقتراح، اذكُرْ سبب اعتقادك أن هذا التغيير قد يكون تحسينًا. كذلك يمكنك استخدام الأمثلة الشخصية كي يعرف المبرمج  أنه ليس الشخص الوحيد الذي ارتكب هذا الخطأ على الإطلاق. يمكن أن تكون هذه طريقة رائعة لجعْل النقد أكثر راحة مثل:

– لقد تعلّمتُ هذا بالطريقة الصعبة

أو

– كنتُ أفعل الشيء نفسه

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

  • راجع الأشياء المطلوبة ودع الأدوات (Tools) تقوم بالباقي

يجب ألا تظهر مشكلات تنسيق الكود مطلقًا أثناء المراجعة. يجب أن تثير مراجعة الكود أفكارًا ومناقشات مُثمِرة. أما أسلوب وتنسيق الكود فيمكن استخدام أدوات للتحقّق منها.

بالتوفيق للجميع…

* المصدر: https://www.seanh.cc/2016/10/04/code-review

** الصورة من موقع: https://portswigger.net

لا توجد تعليقات

شاركني رأيك