यह ठीक काम कर रहा है, भले ही वरिष्ठ और बॉस के साथ कार्यक्रमों की समीक्षा करना अच्छा है?


18

मेरी कंपनी में, किसी भी परियोजना की डिलीवरी से पहले, मेरे मालिक मेरे वरिष्ठों को मेरे या अन्य टीम के सदस्यों द्वारा लिखे गए कार्यक्रमों की समीक्षा करने के लिए कहते हैं या कभी-कभी बॉस भी समीक्षा के लिए हमारे साथ बैठते हैं।

मुझे लगता है कि यह ज्ञान प्राप्त करने का एक अच्छा तरीका है, लेकिन कभी-कभी जब कार्यक्रम ठीक काम कर रहे होते हैं, तो वे समीक्षा के बाद भी काम नहीं करते हैं और मुझे अपने कार्यक्रम में फिर से देखने की जरूरत है।

वे कहते हैं कि समीक्षा कार्यक्रम और क्वेरी निष्पादन का अनुकूलन करने में मदद करती है, लेकिन क्या हम कार्यक्रम के वास्तविक कामकाज पर अनुकूलन पसंद कर सकते हैं?


6
अगर आप किसी ऐसे व्यक्ति की समीक्षा के बिना ठीक से काम कर रहे हैं, तो आपको यकीन नहीं हो सकता है कि आपके द्वारा अपना परीक्षण करते समय उपयोग की जाने वाली पहचान नहीं होती है
शाफ़्ट सनकी

क्योंकि वे परीक्षण टीम द्वारा मॉड्यूल के पूर्ण परीक्षण के बाद कोड की समीक्षा करते हैं।
हिमांशु

15
@ हिमांशु: परीक्षण के बाद समीक्षा निश्चित रूप से बहुत देर हो चुकी है । प्रगति पर काम पर समीक्षा की जानी चाहिए।
Jan Hudec

3
इस अभ्यास को अपनाएं। मेरी इच्छा है कि हम अपनी टीमों पर यह कर रहे हैं। यह ज्ञान सिलोस (हमारे लिए एक बड़ी समस्या) को खत्म करने में मदद करता है, और यह सुनिश्चित करता है कि आपके साथी आपके कोड के साथ काम कर सकते हैं। यदि आपकी समीक्षाओं का मतलब है कि आपका कोड कभी-कभी दोबारा लिखा जाता है, तो यह अच्छी बात है। यहां तक ​​कि महान प्रोग्रामर कभी-कभी खराब कोड भी लिखते हैं; हम में से कुछ को वापस जाने और इसे साफ करने के लिए अधिक समय पसंद आएगा। यह आपके साथ अधिक अनुभवी लोगों के साथ एक महान सीखने का अनुभव होने का मौका होना चाहिए। इसे अपने कोड पर हमला करने वाले लोगों के रूप में न लें; इसे और अधिक अनुभवी प्रोग्रामर के रूप में विकसित करने में आपकी सहायता करने की कोशिश करने वाले लोगों के रूप में लें।
jpmc26

1
यदि यह आम है कि कोड "ठीक काम कर रहा है" तो कोड की समीक्षा के दौरान टुकड़ों तक चीर दिया जाता है कि टीम के सदस्यों को लगता है कि बहुत सारी गति खो रही है, तो आपको शायद जोड़ी प्रोग्रामिंग पर विचार करना चाहिए, इसलिए कोड की समीक्षा की जा रही है जबकि यह किया जा रहा है लिखा हुआ।
बुह

जवाबों:


38

"वर्किंग फाइन" वास्तव में एक महान मीट्रिक है, लेकिन यदि आप टीम में केवल एक ही हैं जो आपने लिखा है, और इस तरह इसे बनाए रखने में सक्षम है, तो कोड कंपनी के लिए मध्य या दीर्घकालिक के लिए बेकार के करीब है।

एक अच्छा कोड कम से कम है:

  • इरादा के अनुसार काम करना
  • मानव-पठनीय / स्पष्ट
  • आसानी से बनाए रखने योग्य
  • भविष्य के परिवर्तनों के लिए आसानी से एक्स्टेंसिबल
  • सुरक्षित
  • बिना अनावश्यक निर्भरता के
  • सही ढंग से गैर मामूली मामलों को संभालना
  • आदि

(इन आवश्यकताओं में से कुछ वास्तव में अतिव्यापी हैं, लेकिन व्यक्तिगत रूप से विचार करने के लिए अच्छे हैं ...)

कोड समीक्षा "काम" भाग से परे उद्देश्य की सेवा करती है, जिसे स्वचालित परीक्षणों के माध्यम से किया जा सकता है।

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

अधिक सकारात्मक पक्ष पर, एक सत्र भी महान प्रथाओं / डिजाइनों को साझा करने का एक अवसर हो सकता है।


1
मैं जोड़ूंगा कि कोड का परीक्षण करने का अर्थ यह नहीं है कि कोई बग नहीं है, ऐसे मामलों को सीमित करें जहां सॉफ्टवेयर उदाहरण के लिए क्रैश होगा।
dyesdyes

3
मैं सहमत हूं, और स्वचालित परीक्षणों को कोड की समीक्षा के साथ-साथ यह सुनिश्चित करने के लिए भी सुनिश्चित किया जाना चाहिए कि वे सही चीज का परीक्षण कर रहे हैं ... कछुए नीचे सभी तरह से।
जेवियर टी।

12

मैंने आपके प्रश्न की व्याख्या की "क्या मेरी कार्यप्रणाली कोड की समीक्षा में उस बिंदु तक पहुंच सकती है, जहां वह अब भी संकलित नहीं है?"

हाँ यह कर सकते हैं। आम तौर पर, एक समीक्षा के दौरान आप देखते हैं कि आपका कोड क्या करता है। जब आप अपने कोड में हाथ डालना चाहते हैं, तो आप कहते हैं कि आपने कार्यक्रम का एक निश्चित भाग समाप्त कर दिया है।

आप कहते हैं कि यह काम करता है। फिर इसे सत्यापित करने के लिए परीक्षण किया जाता है। एक मॉड्यूल पासिंग टेस्ट का मतलब यह नहीं है कि मॉड्यूल को फिर से छुआ नहीं जाना चाहिए।

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


3

सहकर्मी की समीक्षा सीखने का एक शानदार तरीका है। कोई व्यक्ति कुछ अलग देख सकता है, उनके पास आपके लिए अलग अनुभव है और सुधार में योगदान करने में सक्षम होना चाहिए। यह निराशाजनक नहीं होना चाहिए, मुझे उम्मीद है कि कोई भी डेवलपर टिप्पणी करने और किसी के कोड की रचनात्मक आलोचना करने में सक्षम होगा!

यह मुझे लगता है कि इनमें से कुछ "सुधार" वास्तव में ब्रेकिंग परिवर्तन कर रहे हैं क्योंकि (जैसा कि आप उम्मीद करेंगे) लेखक की तुलना में समीक्षक डेवलपर को सॉफ्टवेयर के साथ कम अनुभव है।

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

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

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


1
टूटने का पता लगाने के लिए एकीकरण परीक्षण भी बेहद उपयोगी हैं।
jpmc26
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.