कोड समीक्षा में टिप्पणी करने का सबसे अच्छा तरीका क्या है?


13

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

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

मैं ऐसा प्रतीत नहीं करना चाहता कि मैं एक उच्च घोड़े पर हूं और कहूं " मैं इसे इस तरह से कर रहा हूं ... और मैं यह भी नहीं जानना चाहता कि मैं आधिकारिक होने की कोशिश कर रहा हूं और ऐसा कुछ कहना चाहता हूं " यह इस तरह से किया जाना चाहिए ... " लेकिन मुझे अभी भी इस बिंदु पर पहुंचने की आवश्यकता है कि वे जो कर रहे हैं वह बहुत अच्छा नहीं है।

स्पष्ट करने के लिए: यह एक बहुत अच्छा संसाधन है जिस पर मुझे टिप्पणी करनी चाहिए: क्या एक कोड समीक्षा व्यक्तिपरक या उद्देश्य (मात्रात्मक) है? , लेकिन मैं के लिए देख रहा हूँ कि कैसे उस पर टिप्पणी करने के लिए।


2
FishEye और Crucible (मेरे पसंदीदा उपकरण btw) के नामों को फेंकने के अलावा, मुझे यहां कुछ भी विशिष्ट प्रोग्रामिंग नहीं दिख रही है। सामान पर बहुत सलाह मिल सकती है जैसे कि कुछ के लिए वेब खोज करके रचनात्मक प्रतिक्रिया कैसे प्रदान करें
gnat


@caleb, मैं असहमत हूं, यह इस बारे में अधिक है कि टिप्पणियों को उस दूसरे धागे की तुलना में कैसे वाक्यांश दिया जाए।
HLGEM

1
@HLGEM मैं कहूंगा कि सुझाए गए डूप के बारे में वास्तव में यही है: "मैं कैसे चतुराई से सुझाव दे सकता हूं ..."। सामान्य तौर पर, समीक्षा के तहत कोड में मौजूद समस्याओं को हल करने पर ध्यान केंद्रित करें, न कि शैली या अपनी व्यक्तिगत पसंद पर। यह बताएं कि आपका सुझाव कैसे कोड को बेहतर बनाता है।
कालेब

@stinkycheeseman बस दूसरे लोगों को बताएं कि क्या यह आपका तरीका बेहतर है। और आपकी टीम के लोग प्रक्रिया के माध्यम से कुछ सीखेंगे।
अपटन

जवाबों:


8

वैसे मैं कई सामान्य क्षेत्रों में टिप्पणियां करता हूं और प्रत्येक प्रकार को अलग तरह से संभाला जा सकता है।

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

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

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

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


1
पैराग्राफ # 3: मेरा अनुभव है कि केवल एक बेहतर तकनीक की व्याख्या करना शायद ही कभी अच्छा होता है (जब तक कि यह स्पष्ट न हो)। आपको अक्सर कोड को फिर से लिखना होगा इससे पहले कि वे लाभों की पूरी तरह से सराहना करेंगे और एक आस्तिक बन जाएंगे। एक टिप्पणी-केवल समीक्षा प्रणाली में, यह करना कठिन है। आपको अपनी टिप्पणी "एक बार मुझे देखने आओ और हम इस पर चर्चा करेंगे।" इसे सार्थक बनाने के लिए।
mcmcc

@ mcmcc, यह एक उचित बिंदु है, या आप उन्हें कोड के किसी अन्य स्थान पर संदर्भित कर सकते हैं जहां एक समान टेचिनीक का उपयोग किया जाता है। मैं आमतौर पर टिप्पणियों का उपयोग केवल वास्तविक चर्चा को ट्रिगर करने के लिए करता हूं जब तक कि वे सभी तुच्छ न हों।
HLGEM

6

यदि कोड आपके कोडिंग मानकों का पालन करता है, लेकिन आप इसे एक अलग तरीके से करेंगे, तो आपको खुद से पूछना होगा कि उन्होंने क्या किया।

अगर यह नहीं है ... यह नहीं है कि आपने इसे कैसे किया है और आप इसे छोड़ नहीं सकते हैं, तो बस यह पूछने की कोशिश करें कि आपने इस तरह से इसके बजाय ऐसा क्यों किया? फिर आप उन्हें अर्हता प्राप्त करने के लिए प्राप्त कर रहे हैं कि उन्होंने ऐसा क्यों किया कि उन्होंने बिना यह कहे कि 'मैंने इस तरह से किया होता और आपको भी करना चाहिए ...'

आप इस प्रक्रिया में भी कुछ सीख सकते हैं।


4

मैं बिना किसी अपघर्षक के अपनी बात रखना चाहता हूं।

अपघर्षक होने के साथ मरोड़ को भ्रमित न करें। जब कुछ समस्या होती है, तो इसे इस तरह से दस्तावेज करें कि जो कोई इसे ठीक करने जा रहा है वह समझ सकता है। तथ्यों पर टिके रहें और निबंध न लिखें। अर्थात:

  • यह frobnitz को खराबी का कारण बनेगा जब fooble स्नोरजेट कारक के 5 grimbles के भीतर है।

  • ऐसा करने के लिए स्थापित अधिवेशन एक नए सिरे से शुरू किए गए स्क्वीज़ के साथ fazzatz () को कॉल करना है। इसे एक विधि में बनाएँ ताकि यह हमेशा उसी तरह से हो और नकल न हो।

    मैं यह भी नहीं चाहता कि मैं ऐसा महसूस करूं कि मैं आधिकारिक होने की कोशिश कर रहा हूं और "कुछ इस तरह से किया जाना चाहिए ..." लेकिन मुझे अभी भी इस बिंदु पर पहुंचने की जरूरत है कि वे जो कर रहे हैं वह बहुत अच्छा नहीं है ।

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

असहमति होगी, और वे समीक्षक और समीक्षक के लिए अपने पदों की रक्षा करने के अवसर हैं। यदि आप अन्यथा सहकर्मी हैं और आप एक गतिरोध पर पहुंच जाते हैं, तो टाई को तोड़ने के लिए किसी वरिष्ठ को ढूंढें।


+1 स्नार्ज़ेट कारक के लिए बस (अच्छी तरह से मुझे भी जवाब पसंद है)
HLGEM

3

यह इस बात पर निर्भर करता है कि किस तरह की समस्या देखी गई है

  • मिसिंग कॉपीराईट नोटिस - एक सामान्य और उबाऊ मुद्दा सिर्फ एक संक्षिप्त टिप्पणी है जो इस मुद्दे को बताती है और आगे बढ़ती है
  • ऐसे स्थान जहां मैं इसे अलग तरीके से कर सकता हूं - आमतौर पर बयान देने के बजाय यहां सवाल पूछने की प्रवृत्ति होती है, कभी-कभी उत्तर मूल समाधान को अन्य समय में उचित नहीं ठहराते हैं और फिर मैं उन और अधिक सावधानी से संबोधित कर सकता हूं
  • ऐसे स्थान जहाँ एक स्पष्ट दोष होता है जैसे समान ओवरराइड जो स्टैकओवरफ्लो को रोक सकता है - लाल पेन के लिए पहुंचता है - इसे एक दोष के रूप में चिह्नित करें और यह स्पष्ट करें कि यह क्यों टूट गया है - अन्य समान क्षेत्रों की भी जांच करें कि कोई व्यवस्थित समस्या नहीं है।

1

मेरे अनुभव से:

  1. हमेशा अपने कोड की समीक्षा करते समय आपके साथ कोड का लेखक होता है। अधिमानतः कोड को व्हाइटबोर्ड पर अनुमानित किया गया है और आप दोनों स्पष्ट रूप से कोड को बहुत अच्छी तरह से देख सकते हैं।

  2. एक दोस्ताना बातचीत करें। कोडिंग के अच्छे हिस्से की सराहना करें। उसे बताएं कि "यह सबसे अच्छा मैंने देखा है" यदि आप कोड में कुछ अच्छे हिस्से देखते हैं।

  3. उसे अपने कोड की समीक्षा करने और मान्य बिंदुओं से सहमत होने और उसे सही करने के लिए कहें। अपने कोड में उसकी टिप्पणियों के लिए सम्मान दें और वह स्वचालित रूप से आपके कोड समीक्षा टिप्पणियों को सम्मान देगा।
  4. डेवलपर स्तर पर डील करें जब तक कि कोड समीक्षा की समस्याओं को ठीक करने के लिए बहुत महत्वपूर्ण या अधिक समय की आवश्यकता न हो। अगर हालत लापता मुद्दों सरल के लिए प्रबंधकों के लिए आगे बढ़ना नहीं है।
  5. कोड में गलतियों को इंगित करने के बजाय "अन्य कोड से सीखना" के परिप्रेक्ष्य से देखें।
  6. कोड समीक्षा सत्रों के दौरान, आपने जो पिछली गलतियाँ की हैं, उन्हें उद्धृत करें और कैसे कोड समीक्षाओं ने आपकी मदद की और बड़े उत्पादन मुद्दों से बचा लिया क्योंकि आँखों के एक और सेट ने आपकी मदद की।
  7. विनम्र होना। उससे अधिक प्रशंसा और कम टिप्पणियाँ :) आप कोड समीक्षा के दौरान बहुत कुछ सीखेंगे और वह भी आपकी टिप्पणियों को सहर्ष स्वीकार करेगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.