कोड की समीक्षा करने में बेहतर कैसे हो सकता है?


11

पहले मैं कोड समीक्षा प्रक्रिया में दृढ़ता से विश्वास करता हूं और हमेशा चाहता हूं कि कोई और मेरे कोड की समीक्षा करे। मेरा प्रश्न वास्तव में केंद्र में है कि मैं किसी और के लिए कोड की समीक्षा करने में बेहतर काम कैसे कर सकता हूं?

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


3
क्या आप ऐसा महसूस कर सकते हैं कि आपको ऐसा क्यों लगता है कि आप एक अच्छा काम नहीं करते हैं? क्या मैट्रिक द्वारा?
मार्क कैनलस


@ मर्क से सहमत: शुद्धता, शैली, सादगी, दक्षता, के लिए कोड की समीक्षा ...? क्या आप कोड पढ़कर बग को पहचान सकते हैं? क्या आप इसे पढ़कर शैली में विसंगतियों को देख सकते हैं? और इसी तरह।
16'11

जवाबों:


5

बेहतर कोड समीक्षा करने का कोई तरीका नहीं है। केवल एक चीज जो आप कर सकते हैं वह है कि सीखने और अनुभव के साथ सुधार करना।

आम तौर पर चीजें जिनका मैं पालन करता हूं

- Use variables judiciously
- Keep things in scope loose boundaries will generate more errors
- Orient your language of coding in domain specific terms, they make more sense
- Keep loops to minimum 2 for each method if needed
- use ternary operators
- Arrange methods alphabetically
- Keep errors at handling ease
- write less but efficient code

मुझे लगता है कि आप इसमें बहुत कुछ जोड़ सकते हैं।


2
मुझे यकीन नहीं है कि वर्णानुक्रम में तरीकों की व्यवस्था करना अच्छा विचार है। मैं कहूंगा कि उन्हें अपने कार्य द्वारा आदेश दिया जाना बेहतर होगा। दो संबंधित विधियाँ वास्तव में बहुत दूर होने के कारण उन्हें गेटसमॉर्ट और सेटसमेल नाम दिया गया है, यह अच्छा नहीं लगता।
23

2
टीबीएच, टर्नरी ऑपरेटर बहुत बार आपके कोड को उनके बिना समझने के लिए कुछ कठिन में बदल देते हैं (हालांकि अधिक क्रिया)।
ईलियम

2
मुझे यह भी निश्चित नहीं है कि आपके "कम लेकिन कुशल कोड" लिखने का क्या मतलब है। मैं कहता हूं कि आम तौर पर यह मायने नहीं रखता है कि आप कितने समय तक कोड को स्पष्ट करते हैं - मैं ज्यादातर समय कुशल कोड की परवाह नहीं करता।
निगल Elysium

3

अपने आप से पूछें कि क्या दूसरों को आपके लिए एक अच्छा समीक्षक बनाता है?

कोड के माध्यम से जाने पर भी;

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

1
पतन का कारण? रचनात्मक आलोचना कृपया
रोस

2
ठीक से कैपिटलाइज़ करें।
मार्क कैनलस

1
योग्य क्या? एनपी ब्रो
रॉस

1

मैं सिर्फ लक्ष्य करता हूं

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

इसके अलावा, "यह जानना कि क्या देखना है" बस अनुभव, अभ्यास और पढ़ने के साथ आता है।


1
मैं मैकेनिकल कोड फॉर्मिंग का बहुत बड़ा प्रशंसक हूं। आदर्श रूप से चेकइन के दौरान एक प्रीप्रोसेसर के माध्यम से किया जाता है, इसलिए लोग आधिकारिक मानक से बच सकते हैं यदि यह वास्तव में उन्हें कीड़े देता है (अनुभव बताता है कि वे जल्दी छोड़ देते हैं)

1

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

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

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

यदि वे निम्नलिखित स्कोर के अनुरूप हैं तो मैं कोड समीक्षाओं का वास्तविक प्रशंसक हूं:

  • प्रत्येक डेवलपर के पास अपनी राय के लिए सभी कोड और तर्क की समीक्षा करने की संभावना है
  • किसी को भी दूसरों के कोड का दुरुपयोग करने का अधिकार नहीं है
  • न केवल बुरा कोड एक चर्चा को सक्रिय करता है, बल्कि अच्छा कोड भी होता है
  • चर्चा हर शामिल लोगों के लिए खुशियों के साथ समाप्त होती है
  • समीक्षा लगभग वास्तविक समय में होती है, कम से कम सुविधा पूर्ण होने से पहले

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

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

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

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

क्योंकि प्रारंभिक प्रश्न यह था कि क्यों कुछ लोग अन्य लोगों की तुलना में बेहतर समीक्षा करने लगते हैं, जिनका मैं उत्तर दूंगा कि ये लोग संभवतः वास्तविक समीक्षा शुरू होने से पहले एक पूर्वावलोकन करते हैं, इसका मतलब है कि वे शायद स्वयं तैयार हैं ताकि उन्हें पता चले कि वे क्या समीक्षा करना चाहते हैं। ।


1

[एच] ओउ मैं किसी और के लिए एक कोड समीक्षा करने में बेहतर काम कर सकता हूं?

उनसे ढेर सारे सवाल पूछें

मुझे पता है कि एक कोड समीक्षा करने के लिए आपको यह जानने की आवश्यकता है कि मौजूदा कोड कैसे काम करता है ...

वास्तव में, नहीं, आपको एक अच्छा समीक्षक होने के लिए कोड को पहले से जानने की जरूरत नहीं है।

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

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

हालाँकि मैं अब वहाँ काम नहीं करता, फिर भी मैं जाँच-पड़ताल करने से पहले अलग-अलग बताता हूँ और खुद से पूछता हूँ, "बिल में इस बारे में क्या सवाल होंगे?" और अक्सर, मैं परिणामस्वरूप कुछ बदल रहा हूं।

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