إنني ألتزم باستمرار بفتح مشاريع مفتوحة المصدر (ريد هات ، إلخ). وقد لاحظ أن مراجعات الكود السلبي ، ذاتية في جوهرها ، تستغرق معظم الوقت. يحدث هذا غالبًا مع ارتكاب ، حيث لا يعجب المشرف لسبب من التغييرات. في أفضل الأحوال ، تؤدي استراتيجية مراجعة الكود هذه إلى إضاعة الوقت في مناقشات لا معنى لها ؛ في أسوأ الحالات ، فإنه يشجع بنشاط ارتكاب ، وخلق بيئة معادية والنخبوية.
يجب أن تكون مراجعة التعليمات البرمجية موضوعية وموجزة ، وإذا أمكن ، يجب أن تحتوي على حقائق معينة فقط. هذا ليس نقاشًا سياسيًا أو عاطفيًا ، لكنه نقاش تقني. هدفه هو المضي قدما ، وتطوير المشروع وجميع المشاركين. يجب تقييم أي التزام بناءً على الأسس الموضوعية فقط وليس على رأي شخصي.
استراتيجيات مراجعة الكود
إليك بعض الاستراتيجيات التي يجب وضعها في الاعتبار عند التفكير في الكود الذي لا تحبه (كجهة صيانة) لسبب ما:
1. أعد صياغة الاعتراض كسؤال
- غير صحيح: "هذا التغيير سيجعل XXX أمرًا مستحيلًا" (هذه مبالغة ، هل هذا مستحيل حقًا ؟)
- جيد: "كيف سنفعل XXX بعد التغيير؟"
2. تجنب المبالغة
ما عليك سوى التعبير عن مخاوفك وطرح أسئلة للمساعدة في تحقيق النتائج المرجوة.
- سيئة: "هذا التغيير سوف يدمر الإنتاجية".
- جيد: "يبدو أن X قد يكون أبطأ من Y الحالي ؛ "هل أخذت قياسات / جمعت بيانات لإظهار أن هذا ليس كذلك؟"
- أفضل (إذا كان لديك الوقت): "في الوقت الحالي ، أقوم بجمع البيانات. سأحاول التحقق من أن X ليس أبطأ من Y. "
- جيد أيضًا: "هذا التغيير يغير دورة O (n) مفردة إلى دورة O (n²) مزدوجة التداخل ؛ هل سيؤثر ذلك على الأداء؟ "
3. ترك تعليقات ضارة لنفسك
من الأفضل الاحتفاظ ببعض الأفكار معك. إذا كنت لا تستطيع أن تقول بأدب ، فمن الأفضل أن تصمت.
- سيئ: "أعتقد أن هذا تغيير سيئ سيدمر كل شيء".
- سيئة: "هل أنت متأكد من أن تطوير البرمجيات هو الخيار الوظيفي المناسب لك؟"
4. التصرف بشكل إيجابي
ربما كان لديك فكرة مختلفة عن كيفية حل المشكلة؟ إذا تصرفت بشكل إيجابي ، فستجد في النهاية حلاً أفضل من أي من الخيارات الأصلية.
- سيئة: "هذا التغيير تمتص ، روايتي أفضل."
- جيد: "لدي أيضًا تغيير في هذا المكان: ربما يمكننا مقارنة و / أو دمج الأفكار".
- إنه جيد أيضًا. "لدي تغيير مماثل في عملي ، لكنني قررت إجراء X ، لأن ZZZ ؛ لماذا اخترت Y؟
5. تذكر أن كل شخص لديه تجربة مختلفة.
في جميع النواحي الأخرى ، قد لا يعلم المهندس المختص تمامًا لبعض السنوات بعض الحقائق التي تراها منطقية. لا حرج في قول الشيء الواضح ، إلا إذا كنت عاضدًا أو ضارًا.
- سيئة: "ألا ترى أن هذا خطأ بشكل واضح؟"
- جيد: "هذا غير صحيح لأنه يلقي استثناء مؤشر فارغ عندما يكون X هو Y."
6. لا تقلل من شأن تعقيد ما هو غير واضح
تذكر أن الأشياء الواضحة لك قد لا تكون واضحة للجميع. من خلال اقتراح طرق بديلة والإشارة إلى أمثلة مفيدة ، يمكنك مساعدة الجميع في المزامنة.
- سيئة: "لماذا لا تسحق الغنوص فقط؟"
- جيد: "إذا قمت بسحق الغنوص ، فيمكن أن يصبح هذا الجزء أسهل (انظر XXX للحصول على مثال)."
7. الاحترام
في بعض الأحيان لا يفي الالتزام ببساطة بمعايير الجودة الدنيا. من الطبيعي أن نقول هذا ، لكن إظهار الاحترام لا يتطلب بذل جهد إضافي.
- سيئة: "هذا هو رمز غبي كتبه شخص غبي."
- جيد: "شكرا لك على المدخلات الخاصة بك. ومع ذلك ، لا يمكن اعتماده كما هو ؛ هناك العديد من المشاكل (كما هو موضح أعلاه). "
- جيد أيضًا: "كما ذكر أعلاه ، هناك العديد من المشكلات المتعلقة بهذا الالتزام. ربما التراجع والتحدث عن سيناريوهات الاستخدام؟ هذا سيساعد في العثور على الطريق ".
8. إدارة توقعاتك (ووقتك)
إذا كان الالتزام كبيرًا جدًا ولا يمكن التفكير فيه بسرعة ، فمن الطبيعي أن نقول ذلك على الفور. ثم ابحث عن حل.
- سيئة: "أنا لا أقبل ذلك ، إنه كبير جدًا."
- سيء للغاية: تجاهل الالتزام حتى يختفي.
- جيد: "هل يمكنك تقسيمها إلى ارتكاب أصغر؟ ليس لدي متسع من الوقت لمراجعة الكود ، لكنه مجرد التزام كبير / معقد للغاية لمراجعة واحدة. "
9. قل "من فضلك" (أظهروا مجاملة)
مجرد قول "من فضلك" ، أنت تُظهر أنك تحترم وقت المرسل ، خاصةً عندما تريد تغيير التنسيق أو النمط ، والذي قد يبدو تغييرًا بسيطًا. الأمثلة على ذلك:
- "هل يمكنك توثيق التغييرات في الفجوات في طلب تجمع آخر؟"
- "هل يمكنك محاذاة هذه التعريفات المتغيرة لتسهيل قراءتها؟"
10. ابدأ محادثة
إذا كنت لا تزال لا تحب شيئًا بعد كل هذا ، لكنك لست متأكدًا من السبب ، فقد تضطر إلى تحمله. أو قل ، "أنا لا أحب ذلك ، لكنني لست متأكدًا من السبب ، هل يمكننا التحدث عنه؟" هذا سؤال معقول ، وعلى الرغم من أن الأمر قد يستغرق بعض الوقت ، إلا أنه في كثير من الأحيان يستحق كل هذا العناء لأنه يوجد الآن شخصان ويتعلم كل منهما (الشرح والاستماع) ، وليس شخصين يعارض كل منهما الآخر.
حتى المهندسين المؤهلين وذوي الخبرة يجب أن يكونوا قادرين على القول "لا أفهم لماذا لا يعجبني". هذه ليست دعوة لمهاجمة موقف المراجع ، وإنما هي بحث صادق عن المعرفة.
ملخص
تجنب عبارات القطعي أو الأخرق ، وتجنب الخلافات ، والتعبيرات النخبوية أو المهينة والإنشاءات مثل "واضح" و "لماذا لا أنت فقط ...". استخدم عبارات واضحة وواقعية ولغة داعمة ، وطرح الأسئلة والمضي قدمًا. تذكر أن الزملاء والمساهمين هم أيضًا أشخاص. وقتهم يستحق نفس الاحترام الخاص بك.