समय पर ढंग से कोड समीक्षा करने के लिए डेवलपर्स कैसे प्राप्त करें


12

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

(हम git-svn का उपयोग करते हैं, इसलिए हम एक समीक्षा की प्रतीक्षा करते हुए कोडिंग जारी रखने में सक्षम हैं। हालाँकि, मुझे अभी भी निराशा होती है जब मुझे अपना कोड करने से पहले लंबा इंतजार करना पड़ता है।)

जवाबों:


12

देखिए कि फेसबुक अपने स्वयं के ऐप के साथ कैसे करता है, जिसे phabricator कहा जाता है: http://phabricator.org/

वे मूल रूप से प्रति मुद्दे के आधार पर प्रतिबद्ध हैं, और प्रत्येक मुद्दे के लिए, कोड दिखाया गया है, जिसकी समीक्षा किसी के द्वारा की जानी है। कोड उनके मुख्य भंडार में नहीं जाता है जब तक कि समीक्षक ने कहा कि ऐसा करना ठीक है।

मुझे लगता है कि यह इसे और मजेदार बनाता है।

इसके अलावा, शायद एक कोड दो लोगों को सौंपा जाना चाहिए: एक जो इसे करता है और एक जो इसे समीक्षा करता है।

यद्यपि आपके साथी इस समीक्षा बात पर विश्वास नहीं करते।

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

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

इसके अलावा, व्यक्तिगत रूप से वहां जाना और समीक्षा न करने तक छोड़ना मदद करता है।

या, यदि आप टीम के साथ ठीक नहीं हैं, या वे आपके साथ ठीक नहीं हैं, तो आप जानते हैं, "यदि आप 'कंपनी बदल सकते हैं, बदल सकते हैं" ...


9

मैं इसे कुछ मान्यताओं के आधार पर करने जा रहा हूँ:

  1. हर कोई कोड लिखना चाहता है (यदि नहीं, तो आपके पास ऐसे लोग हैं जो जाने की जरूरत है।)।
  2. हर कोई चाहता है कि उसका अपना कोड चेक किया जाए।

केवल उन लोगों को अनुमति दें जो अपनी समीक्षा पूरी कर लेते हैं ताकि उनके कोड की जाँच हो सके।

शायद समय का एक निश्चित ब्लॉक इंटरप्ट होने की समस्या से बचने की उम्मीद में कोड समीक्षाओं के लिए समर्पित हो सकता है।

गुणवत्ता कोड में जाँच करना लक्ष्य होना चाहिए। आप उन बिंदुओं पर समीक्षाओं को दंडित / बाध्य नहीं करना चाहते हैं जहां हर कोई इसे "रबर स्टैम्प" की स्वीकृति देता है।

यदि आपके पास अलग-अलग स्तर (जूनियर, एसआर आदि) हैं, तो पदोन्नति और एक शीर्षक बनाए रखना आपके काम करने पर आकस्मिक होना चाहिए।


1

पिछले नियोक्ताओं के एक जोड़े पर, हमने घुमाया जो दैनिक आधार पर कोड की समीक्षा पर था। आमतौर पर 3 लोगों ने एक सीआर दिन साझा किया और प्रत्येक सीआर को दो समीक्षकों द्वारा हस्ताक्षरित किया जाना था। इससे यह सुनिश्चित हो गया कि जब यह आपका दिन था, तो आप जानते थे कि सीआर आपसे अपेक्षा की गई थी, चाहे आपकी अन्य परियोजनाओं की परवाह किए बिना। इसलिए हर पांच दिन में आपकी बारी थी और आप अपने विकास कार्यों को अपने हिसाब से समायोजित कर सकते हैं।

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

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

अंत में, हम एक SLA से सहमत हैं कि कैसे समीक्षा जल्दी से बदल जाती है। मुश्किल से कुछ भी 48 घंटों से अधिक समय तक कतार में रहता है और अधिकांश समीक्षा 24 घंटे से कम समय में की जाती हैं।


1

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

जब तक आप मिशन रिलीज़ सॉफ़्टवेयर या क्रिटिकल पैच को प्रोडक्शन रिलीज़ कैंडिडेट कोड के लिए नहीं कर रहे हैं, तब तक किसी विशेष प्रकार की कोड समीक्षाओं के साथ सख्ती से चिपके रहने के लिए कोई बाध्यकारी कारण नहीं हैं।

  • आपकी कंपनी की आवश्यकता के पीछे का विचार एक सतह (100% समीक्षा कोड) पर उचित लगता है, लेकिन इसका मतलब है कि उन्होंने उपयोग करने का निर्णय लिया है - क्योंकि आप बताते हैं, ये डेवलपर्स को निराश करते हैं।

आपके जूतों में घूमते हुए, मैं सबसे पहले प्रबंधन को इंगित करूंगा कि पोस्ट-कमिट कोड समीक्षाओं को पूर्व-प्रतिबद्ध लोगों के समान सम्मानजनक माना जाता है। ये शर्तें वेब पर खोज योग्य हैं - यदि आवश्यक हो, तो बैकअप के संदर्भ देखें। 100% समीक्षा कोड प्राप्त करने के लिए एक को पूर्व- समीक्षा की आवश्यकता नहीं है ।

उपरोक्त के आधार पर, मैं अगला सुझाव दूंगा कि वे micromanagement के रवैये को छोड़ दें और डेवलपर्स को वह तरीका आजमाएं जो उनके लिए अधिक सुविधाजनक लगता है। प्रोग्रामर चुनने के लिए प्री-या पोस्ट-कमिट समीक्षाएं सबसे अच्छी हैं। यदि कंपनी प्रोग्रामर से बेहतर जानती है, तो वे स्वयं कोड क्यों नहीं लिखते हैं?


1
"यदि कंपनी प्रोग्रामर से बेहतर जानती है, तो वे स्वयं कोड क्यों नहीं लिखते हैं?": बहुत अच्छी टिप्पणी! लेकिन मुझे आशा है कि विकास प्रबंधक पूर्व डेवलपर्स स्वयं हैं।
जियोर्जियो

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

@ आगम आपका अनुभव निश्चित रूप से मेरा अलग है - न केवल पोस्ट-कमिट के संबंध में, बल्कि (और विशेष रूप से) "प्रोग्रामर्स का wrt हिस्सा भी आलसी हैं ..." जैसा कि अधिक यथार्थवादी छवि वाले प्रबंधकों के लिए मैं सहमत हूं कि आम तौर पर इस मामले में था मेरी टीमें; यह केवल प्रबंधकों का नेतृत्व नहीं करता था, मैं बिना
सोचे समझे

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

1

आपके पास पता करने के लिए कई मुद्दे हैं - आपको दिल और दिमाग जीतना होगा और आपको यह सुनिश्चित करना होगा कि कोड समीक्षा के लिए समय उपलब्ध है।

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

पहला भाग वास्तविक समस्या है - समीक्षा प्रक्रिया में भाग लेने वालों को इसे मूल्य के रूप में देखना होगा अन्यथा वे कभी भी एक कोड समीक्षा नहीं करेंगे (जो मूल्य के रूप में न होने पर परेशान है) जब वे कोड लिख सकते हैं या बग को ठीक कर सकते हैं (जो निश्चित रूप से अधिक महत्वपूर्ण है ...?)।

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

एक बार इसकी संस्कृति का हिस्सा होने के बाद "हर दिन पहली बात" कहना आवश्यक नहीं हो सकता है - लेकिन कहा जा रहा है कि मुझे लगता है कि यह उस पैटर्न में अच्छी तरह से फिट बैठता है जिसमें शायद एक देवता काम करना चाहता है।


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

और समाधान मुश्किल है, लेकिन आईएमई आपको एक नया काम करने का अभ्यास शुरू करने के लिए पर्याप्त "स्थान" ढूंढना है जो समय लेने वाली लेकिन सार्थक है। यह सुस्त समय की पहचान करने के लिए दूरदर्शिता की आवश्यकता है, एक सार्थक परिवर्तन, या दोनों को शुरू करने की कीमत के रूप में समय सीमा को खिसकने की इच्छा। TANSTAAFL। जैसा कि आप कहते हैं, एक बार हर कोई पैटर्न में बस जाता है तो वे अपवाद बना सकते हैं। उम्मीद है कि वे सामान्य पैटर्न के मूल्य की उचित सराहना के आधार पर ऐसा करते हैं।
स्टीव जेसोप

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

@SteveJessop बेशक आप वास्तव में सहमत हो सकते हैं। और निश्चित रूप से अपवाद होने जा रहे हैं (मुझे लगता है कि घोटाले का अवलोकन मूर्खतापूर्ण है, हालांकि - विशेष रूप से जवाब स्पष्ट है - (:)। मुझे लगता है कि कुंजी यह है कि कोई "एक आकार सभी समाधान फिट नहीं होता है" मैं बस प्रस्तावित कुछ ऐसा है जो सरल और समझने में आसान है और किसी के शेड्यूल (फिर पर्यावरण पर निर्भर करता है) को टक्कर देने के लिए अपेक्षाकृत कठिन है
मर्फ़

1

मैंने जिन कंपनियों के लिए काम किया है, उनमें से आपके पास रिव्यू पूरा करने के लिए 3 दिन हैं। यह समीक्षा नहीं करने के लिए स्वीकार्य नहीं है। यह आपकी नौकरी का हिस्सा है। यदि आप समय पर सभ्य समीक्षा नहीं करते हैं तो यह आपके प्रदर्शन मूल्यांकन को प्रभावित करता है। और हाँ, समीक्षा हमेशा सबसे अधिक समय पर होने लगती है। बहुत बुरा, अपने अनुमानों में समीक्षा समय को शामिल करना सीखें। वैसे भी, यदि प्रबंधन सही मायने में मानता है कि समीक्षा महत्वपूर्ण है (यानी वे सभी कोड की समीक्षा करते हैं) तो वे एक समान नीति को आगे बढ़ाएंगे। इसके अतिरिक्त, यदि लोग आवंटित समय में समीक्षा पूरी नहीं करते हैं, तो यह सामग्री की स्वीकृति के रूप में जाता है।


0

समीक्षा बोर्ड जैसे उपकरण का उपयोग करने पर विचार करें । यह बहुत उपयोगी है, खासकर लंबी समीक्षा के लिए।

आप अपने अंतर अपलोड कर सकते हैं और तब तक प्रतीक्षा कर सकते हैं जब तक कि एक समीक्षक ने उनकी समीक्षा समाप्त नहीं कर दी। यदि आपके पास खुली समीक्षाएँ हैं जो आपको अपना काम जारी रखने से रोकती हैं तो आप अपनी दैनिक बैठकों के दौरान यह रिपोर्ट कर सकते हैं (आपकी टीम चाहती है कि नई सुविधाओं की जाँच की जाए ताकि उन्हें जल्द से जल्द जांचा जा सके, उन्हें नहीं?)।


0

जोड़ने के लिए कुछ बिंदु जो अन्य उत्तरों में नहीं हैं।

समीक्षा किए जाने वाले कोड की जाँच होनी चाहिए

  • ताकि आप एक स्थिर संस्करण की समीक्षा कर रहे हैं।
  • यह मुख्य विकास शाखा पर हो सकता है यदि कोई रिलीज काफी दूर है
  • यह शाखा पर हो सकता है यदि मुख्य कारण प्रदूषित न करने का एक अच्छा कारण है

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

कठिन सवाल यह है कि कोड समीक्षा कब और कैसे करें।

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

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