कोड समीक्षा कौन करना चाहिए?


12

मेरी कंपनी में ज्यादातर आर्किटेक्ट कोड रिव्यू करते हैं। वह बहुत ही अनुभवी और स्मार्ट सॉफ्टवेयर आदमी है, इसलिए वह बहुत अच्छा है। जब डेवलपर्स कोड समीक्षा करते हैं तो वे इसे आधा भी नहीं करते हैं। हमने डेवलपर्स को अधिक कोड समीक्षा करने की कोशिश की, लेकिन कोड समीक्षाओं की गुणवत्ता अच्छी नहीं थी। हम Scrum का उपयोग विकास पद्धति के रूप में करते हैं।

हालांकि वर्तमान प्रणाली के साथ दो समस्याएं हैं:

  1. वास्तुकार एक अड़चन बन जाता है

  2. डेवलपर्स कोड की गुणवत्ता और वास्तुकला (जो सभी प्रकार की समस्याओं की ओर जाता है) की जिम्मेदारी नहीं लेते हैं।

हम इन मुद्दों को कैसे संबोधित कर सकते हैं? क्या हमें बदलना चाहिए कि कोड समीक्षा कौन करता है?



1
मैं इसे डुप्लिकेट के रूप में नहीं देखता हूं। सवाल संबंधित हैं, लेकिन संभव डुप्लिकेट थोड़ा अलग मुद्दों पर केंद्रित है।
बजे बार्ट वैन इनगेन शेनॉ

क्या आप इस बात पर विस्तार कर सकते हैं कि 'कोड समीक्षाओं की गुणवत्ता' से आपका क्या मतलब है? क्या आप समीक्षा के अंत में उभरने वाले कोड की गुणवत्ता से मतलब रखते हैं? मुझे आप की तरह लगता है कि आपके पास केवल एक डेवलपर है जो स्वीकार्य गुणवत्ता के कोड का उत्पादन कर सकता है, जिस स्थिति में मैं कहूंगा कि आपको बड़ी समस्याएं हैं ...
आकाशवाणी

जवाबों:


15

डेवलपर्स को कोड रिव्यू करना चाहिए। उन्हें कोड समीक्षाएं करनी चाहिए, क्योंकि उन्हें कोड, कंपनी शैली मानकों और प्रथाओं को जानना चाहिए। किसी और की कोड समीक्षा करने से, आप अपने डेवलपर्स को बता रहे हैं कि यह सुनिश्चित करना उनकी ज़िम्मेदारी नहीं है कि कोड कंपनियों के मानकों को पूरा करता है।

यदि आपको लगता है कि उन्हें कोड समीक्षाएं करने के लिए प्रशिक्षण की आवश्यकता है, तो उनके लिए इसे प्राप्त करें। आपकी वर्तमान स्थिति को देखते हुए, आप एक कोड समीक्षा कर सकते हैं, और फिर आपके वास्तुकार द्वारा टिप्पणी की गई है - क्या देवता ने इसे सबमिट करने वाले को भेजने से पहले आर्किटेक्ट को अनुमोदन के लिए समीक्षा प्रस्तुत की है।


2
" किसी और की कोड समीक्षा करने से, आप अपने डेवलपर्स से कह रहे हैं कि यह सुनिश्चित करना उनकी ज़िम्मेदारी नहीं है कि कोड कंपनियों के मानकों को पूरा करे। " - हाँ और नहीं। आप यह भी बता रहे हैं कि "आपका कोड महत्वपूर्ण सहकर्मी समीक्षा के अधीन है (उम्मीद है) , इसलिए आप इसे पहली बार सही करते हैं।"
जेन्स जी

@ जेन्सजी: लेकिन यह ओपी की स्थिति में समीक्षा करने वाला सहकर्मी नहीं है।
jmoreno

3
इसलिए मैंने इसे बोल्ड किया।
जेन्सजी

8

इस स्थिति में, आपको इस अनुभवी डेवलपर के ज्ञान के लिए जो आवश्यक है वह बाकी टीम को बढ़ने में मदद करने के लिए है। सर्वश्रेष्ठ डेवलपर के कौशल द्वारा एक टीम की गुणवत्ता को परिभाषित नहीं किया जाता है; यह सबसे खराब के कौशल द्वारा परिभाषित किया गया है। आप इस तरह की चीजों की कोशिश कर सकते हैं:

  • सहयोगात्मक समीक्षा। यह मेरी पिछली टीम में वास्तव में बहुत अच्छा था। हमने एक प्रोजेक्टर के साथ पूरी टीम को एक कमरे में रखा और कुछ वस्तुओं की समीक्षा शुरू की। शायद शुरुआत में आर्किटेक्ट वह होता है जो समीक्षा का मार्गदर्शन करता है, लेकिन कुछ ही हफ्तों में (हम हर शुक्रवार को एक या दो घंटे आरक्षित करते हैं) पूरी टीम उन प्रमुख अवधारणाओं पर बात करना और समझना शुरू करती है जो वर्तमान में केवल आर्किटेक्ट को पता लगती हैं।

  • जोड़ा प्रोग्राम तैयार करना। मेरे लिए यह एक टीम में ज्ञान फैलाने का सबसे अच्छा साधन है।


जोड़ी प्रोग्रामिंग के लिए +1। वास्तव में, उस सवाल पर मेरा पहला "सब" था, लेकिन जोड़ी प्रोग्रामिंग ने इसे बेहतर बना दिया। मुझे लगता है कि हम इसका सबसे अधिक लाभ उठाते हैं यदि हम इसे गुणवत्ता के पहलू के अलावा सीखने का स्रोत बनाते हैं।
जेन्सजी

3

जब मैं सिस्टम / सॉफ्टवेयर आर्किटेक्ट को सभी परिवर्तनों / कमिट्स को साइन इन करने के बिंदु को देख सकता हूं, तो सॉफ्टवेयर डेवलपर्स को आर्किटेक्ट को शामिल किए बिना समीक्षाएं करने में सक्षम होना चाहिए - मध्यस्थता को छोड़कर।

मेरी पसंदीदा [*] समीक्षा प्रक्रियाएं हैं:

  • आवश्यकता / समस्या के अनुसार समूह परिवर्तन।
  • सभी डेवलपर्स, सॉफ्टवेयर आर्किटेक्ट और समीक्षा के लिए आवश्यकता / मुद्दे के लेखक को आमंत्रित करें। (वे सभी एक समीक्षा करने के लिए आवश्यक नहीं हैं ।)
  • समीक्षा समाप्त पर विचार करें जब:
    • दो डेवलपर्स ने समीक्षा की है।
    • सभी टिप्पणियों का जवाब दिया जाता है। (संभवतः सॉफ्टवेयर आर्किटेक्ट एक निर्णय लेते हैं।)
    • एक कार्यदिवस आगे की चर्चा के बिना पारित हो गया है (या सभी आमंत्रित पार्टियों ने समीक्षा की है)।

इसलिए आपके प्रश्न का मेरा संक्षिप्त उत्तर है: डेवलपर्स को समीक्षा में बदलाव करना चाहिए।

[*] दुर्भाग्य से यह हमेशा नहीं होता है कि मैं कैसे परियोजनाओं को संचालित करता हूं।


अब हमेशा, या हमेशा नहीं ?
मार्टिनेज

जैसा कि आपने अनुमान लगाया होगा: "हमेशा नहीं"। इसे जगह देने के लिए धन्यवाद। मैंने जवाब सही दिया है।
जैकब स्पेर एंडरसन

3

मुझे सामयिक टीम कोड समीक्षाओं का अभ्यास पसंद है जिसमें पूरी टीम के आर्किटेक्ट शामिल हैं, लेकिन फिर बहुत सारे और बहुत सारे और बहुत सारे कोड की समीक्षा टीम के दो या तीन सदस्यों के बीच होती है।

यदि यह वास्तव में मुश्किल या संवेदनशील कोड है, तो आर्किटेक्ट या टीम के वरिष्ठ सदस्यों को सूचीबद्ध करें।

ईमानदारी से, हालांकि, यह एक हास्यास्पद लगता है कि एक वास्तुकार कोड समीक्षा करता है। उसे अपनी विशेषज्ञता साझा करने के लिए अनौपचारिक रूप से डिजाइन समीक्षाएं, या सामयिक कोड समीक्षाएं करनी चाहिए। इंजीनियरिंग टीम को कोड की जिम्मेदारी लेनी चाहिए। यदि समस्याएं हैं, तो वे समय के साथ इसमें बेहतर हो जाएंगे।


2

मैं सहमत हूं, यदि सिर्फ एक व्यक्ति समीक्षा करता है, तो बाकी लोग शायद "मुझे नहीं पता, यह काम करने लगता है, लेकिन साथ चलो, लेकिन स्मार्ट आदमी यह पता लगाता है कि यह ठीक है या नहीं"। मैं निम्नलिखित के बारे में सोच सकता हूं:

  • अपना कोड सार्वजनिक करें ताकि हर कोई देख सके कि हर कोई क्या काम कर रहा है; कोड वाली प्रत्येक फ़ाइल के प्रारंभ में नाम रखें; शायद उन्हें बाहर प्रिंट करें और उन पर मुहर लगाएं, उह, बाथरूम या जहां भी आपको लगता है कि यह कुछ आंखों को पकड़ लेगा
  • जोड़ा प्रोग्राम तैयार करना; आपके पास एक और मस्तिष्क के साथ, आप अपने चर का नामकरण करने से पहले दो बार सोचेंगेi
  • अपने चौकीदार को उठाएं और उसे समझाएं कि विरासत कैसे काम करती है (ओह, हाँ, यह काम नहीं करता है)। अपना कोड किसी और को समझाने से मदद मिलती है। शायद यह संकलन करता है, शायद यह सही सामान करता है, लेकिन आप वास्तव में क्यों नहीं समझ पाए। अब तुम्हारा मौका है
  • दिशानिर्देशों का एक सेट है और हर किसी का पालन करें; जो भी गाइडलाइन है, वह बिना किसी गाइडलाइन के बेहतर है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.