मेरे अनुभव में सबसे अच्छा तरीका यह है कि छेद टीम को कोड की समीक्षा करने दें। हम प्रत्येक प्रोजेक्ट में एक प्रतिबद्ध मेलिंगलिस्ट का उपयोग करते हैं जहां आप संस्करण नियंत्रण प्रणाली के लिए हर कोड परिवर्तन का पालन कर सकते हैं। हमारे अधिकांश डेवलपर ने अपनी परियोजना विशिष्ट मेलिंग सूची में सदस्यता ली है क्योंकि वे कोड परिवर्तन में रुचि रखते हैं।
जब कोई नए स्रोत कोड में खराब तरीके से देखता है, तो वह या तो कमिटर को समझाता है कि वह इसे कैसे बेहतर तरीके से कर सकता है, यदि कमिट एक प्रशिक्षु है, या वह इसके बारे में चर्चा शुरू करता है, अगर यह अधिक अनुभवी कमिटर था।
बेशक यह विधि इस बात की गारंटी नहीं देती है कि सभी नए कोड की समीक्षा की गई है, विशेष रूप से तनावपूर्ण समय में जब टीम के किसी भी सदस्य को अपने कोड परिवर्तन का पालन करने के लिए अवकाश नहीं है। प्रत्येक डेवलपर यह सुनिश्चित करने के लिए ज़िम्मेदार नहीं है कि प्रत्येक डेवलपर अपने काम को अच्छा बनाता है, अकेले इस बात की गारंटी नहीं दे सकता है कि इसकी समीक्षा की गई है। लेकिन, कम से कम हमारी टीमों में, हमेशा एक तकनीकी प्रबंधक होता है जो तकनीकी गुणवत्ता के लिए जिम्मेदार होता है।
यदि वे निम्नलिखित स्कोर के अनुरूप हैं तो मैं कोड समीक्षाओं का वास्तविक प्रशंसक हूं:
- प्रत्येक डेवलपर के पास अपनी राय के लिए सभी कोड और तर्क की समीक्षा करने की संभावना है
- किसी को भी दूसरों के कोड का दुरुपयोग करने का अधिकार नहीं है
- न केवल बुरा कोड एक चर्चा को सक्रिय करता है, बल्कि अच्छा कोड भी होता है
- चर्चा हर शामिल लोगों के लिए खुशियों के साथ समाप्त होती है
- समीक्षा लगभग वास्तविक समय में होती है, कम से कम सुविधा पूर्ण होने से पहले
मैंने जो सीखा है वह यह है कि यदि आप कोई हैं जो कोड की प्रत्येक पंक्ति की समीक्षा करते हैं और सोचते हैं कि आपको कोड स्वरूपण या कोड दक्षता के संदर्भ में कोड गुणवत्ता जैसी चीज़ों को नियंत्रित करना है तो आप स्वयं बहुत अक्षम हैं क्योंकि आप उन चीजों को करते हैं जो मशीनों के लिए कर सकते हैं आप। आपका लक्ष्य निरंतर एकीकरण प्रणाली का उपयोग करना चाहिए जो प्रत्येक कोड योगदान के निर्माण और कोड गुणवत्ता को नियंत्रित करता है। यदि यह सिस्टम रिपोर्ट तैयार करता है और उन्हें योगदानकर्ताओं के पास भेजता है तो सब कुछ सही है।
मुझे यह स्वीकार करना होगा कि यदि आपको कोड की समीक्षा करनी है क्योंकि आपको नियंत्रण करना है, या प्रोग्रामर की गुणवत्ता को रैंक करना है, तो मेरे सुझावों का कोई मतलब नहीं है। इस मामले में मैं स्रोत कोड लाइन की समीक्षा रेखा से नहीं करूंगा। मैं चीजों की समीक्षा करूंगा:
- क्या सुरक्षा संबंधी समस्याएँ हैं
- इरादा एपीआई का उपयोग किया जाता है
- क्या कोड निर्दिष्ट वास्तुकला को लागू करता है
- क्या उन्होंने उपयोगी परीक्षण लिखे (लेकिन केवल अगर उन्हें निर्देश दिया गया था, तो मुझे सीखना था)
- प्रलेखन
- निर्माण प्रक्रिया
- ... और कुछ और, शायद
यदि आप एक अनुभवी डेवलपर हैं, तो आप निश्चित रूप से हमेशा लूप जैसी चीजें पाएंगे जो आप बेहतर प्रदर्शन के साथ कर सकते हैं। बेशक यह दूसरों को इस तरह के ज्ञान की व्याख्या करने के लिए उपयोगी है, लेकिन यह समीक्षा सत्र का हिस्सा नहीं होना चाहिए। यदि महत्वपूर्ण प्रदर्शन मुद्दे हैं, तो इसलिए नहीं कि वह (या वह) एक सूची प्रकार के कम कुशल संस्करण का उपयोग करता है।
क्योंकि प्रारंभिक प्रश्न यह था कि क्यों कुछ लोग अन्य लोगों की तुलना में बेहतर समीक्षा करने लगते हैं, जिनका मैं उत्तर दूंगा कि ये लोग संभवतः वास्तविक समीक्षा शुरू होने से पहले एक पूर्वावलोकन करते हैं, इसका मतलब है कि वे शायद स्वयं तैयार हैं ताकि उन्हें पता चले कि वे क्या समीक्षा करना चाहते हैं। ।