सामान्य कोड समीक्षा प्रक्रियाएं क्या हैं और क्या बुरा माना जाता है?


16

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

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

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

तो मेरा सवाल है कि क्या यह उचित है? या आम?


3
किस तरह के कमेंट मिल रहे हैं? बहुत कुछ लगता है। क्या यह टिप्पणियों का प्रारूपण है? कोडिंग? टिप्पणियों की प्रकृति के बारे में अधिक जानकारी के बिना इसका उत्तर देना कठिन है (और शायद आपके कोड में वास्तव में क्या टिप्पणियों को ट्रिगर किया गया है)।
मेटलमेक्स्टर

1
हे - यह सुनिश्चित नहीं है कि यह सही शब्द है, लेकिन यह ज्यादातर सामान्य "सर्वोत्तम अभ्यास" है जैसे कि चर नाम बदलना, फ़ंक्शंस, 3-5 बार फ़ंक्शंस को फिर से नाम देना, आदि। हमने phpcs स्थापित किए हैं ताकि स्वरूपण सही हो।
user1207047

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

1
"तो मेरा मतलब है कि कोई यह सोचना चाहेगा कि 8 साल बाद आपको कुछ सही पता चलेगा?" - ठीक है, आप आश्चर्यचकित होंगे ... जिन चीजों को मैं कभी-कभी काम पर देखता हूं ...
मेटलमाइज़र

जवाबों:


15

सभी टिप्पणियों को "अवश्य करना चाहिए" और तर्क के बिना माना जाता है।

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


मैंने टिप्पणियों की प्राथमिकता पूछने के लिए कई बार कोशिश की है। मुझे "अच्छा है" और "आवश्यक" जैसा कुछ वापस मिलता है। उनमें से एक विशाल बहुमत "आवश्यक है।"
user1207047

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

2
आपको पता है @ डंक, मुझे लगता है कि आप यहीं हैं। आपकी टिप्पणी वास्तव में घर पर आई और मैंने इस उत्तर को स्वीकार कर लिया क्योंकि मुझे नहीं लगता कि मैं एक टिप्पणी स्वीकार कर सकता हूं। मैं इस समूह के लिए एक "बाहरी व्यक्ति" हूं और अब महसूस करता हूं कि क्यों आंतरिक चक्र बेहतर और तेज समीक्षा हो रही है और जो बाहर नहीं हैं। मुझे प्रबंधन द्वारा इस टीम पर "मजबूर" किया गया, हां और हम एक साथ काम करने के लिए "मजबूर" हैं। तो यह बहुत ही उचित और एक तार्किक व्याख्या लगता है कि यह क्यों कठोर है। कि या मैं वास्तव में कोडिंग पर बदबू आ रही है। केवल यह पता लगाने का तरीका है कि किसी दूसरे समूह / कंपनी में जाना है और अपने लिए देखना है।
user1207047

4
@ user1207047: आपको एक उत्तर स्वीकार नहीं करना चाहिए क्योंकि आप नीचे दी गई टिप्पणियों में से एक को पसंद करते हैं क्योंकि यह साइट के मानकों और उद्देश्य के खिलाफ जाती है (मुझे लगता है कि मैं यहां एक पैटर्न को समझ रहा हूं)। उस के लिए upvote टिप्पणी कार्यक्षमता है।
वेबबिडीव

10

कोड समीक्षा एक विभाजनकारी प्रक्रिया हो सकती है।

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

यदि यह पूर्व है, तो मैं एक संकल्प (नई नौकरी, या नई कोड समीक्षा प्रक्रियाओं) की दिशा में काम करने की सलाह दूंगा।

यदि यह बाद की बात है, तो मैं आपके कोड को पेशेवर गुणवत्ता तक लाने के लिए बहुत सारे कोड-रीडिंग और अध्ययन करने की सलाह देता हूं।


अरे, अच्छे विचार। क्या मैं उनमें से कुछ इकट्ठा कर सकते हैं वास्तव में विचारशील विश्लेषण कर रहे हैं, लेकिन उनमें से अधिकांश नाइट-पिकिंग जैसे कि चलती कार्य या नामकरण कार्यों को प्रकट करते हैं। समस्या यह है कि जब वे अपनी विचार प्रक्रिया की व्याख्या करते हैं तो यह वास्तव में समझ में आता है, लेकिन आपस में वे एक ही काम नहीं कर रहे हैं और एक ही त्रुटि बना रहे हैं जैसे मैं हूं।
user1207047

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

8
@user: विधियों / कार्यों का नामकरण महत्वपूर्ण है, यह जरूरी नहीं है कि नित-पिकिंग हो। यदि आप नामकरण के साथ खराब काम करते हैं तो यह आपकी टीम के लिए कष्टप्रद हो सकता है। यदि आप एक स्पष्ट नाम के साथ नहीं आ सकते हैं तो यह एक अच्छा कार्य नहीं है। आप "नए" आदमी लगते हैं और दूसरों को स्पष्ट रूप से उनके पागलपन के लिए एक विधि है कि वे शायद पहले कई बार चर्चा कर चुके हैं। इस प्रकार, कम टिप्पणियों का कारण। मेरा सुझाव है कि आप सीखें कि वे क्या चाहते हैं और बट हेड्स के बजाय कंफर्म करने की कोशिश करें। कुछ सम्मान अर्जित करें, फिर आप वैकल्पिक विचारों की पेशकश करने की स्थिति में होंगे जो खुले दिमाग से मिलेंगे।
डंक

1
@user: ऐसा लगता है कि आपको कोडिंग / डिज़ाइन मानकों की आवश्यकता है।
डंक

2
@user: आप जो कुछ भी कर सकते हैं वह सिस्टम के भीतर काम करने का है और आप टीम के खिलाड़ी हैं। अगर आपने ऐसा किया है तब या तो आपकी धारणा सही नहीं है, आप तर्कहीन लोगों के साथ व्यवहार कर रहे हैं, वे आपके रवैये को विवादास्पद मानते हैं या यह सिर्फ सादा नौसिखिया कार्यालय की राजनीति है। केवल आपके पास जो नियंत्रण है वह आपका दृष्टिकोण / धारणा है। यदि आप आश्वस्त हैं कि आप किसी समस्या को भड़काने में नहीं हैं तो मुझे नहीं पता कि आप क्यों रहेंगे। कहीं ऐसे स्थान पर जाएं जो काम करने के लिए सुखद हो क्योंकि लोगों को साथ मिलता है। यदि वही समस्याएं कहीं और होती हैं तो दर्पण में देखें।
डंक

5

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

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

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

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

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


1
100% अंतिम पैराग्राफ से सहमत हैं: आपको लागू करने से पहले अपने इच्छित डिज़ाइन पर चर्चा करनी चाहिए। कम से कम तब आप एक कथित स्वीकार्य ढांचे के साथ शुरुआत कर रहे हैं। फिर लागू करने के बाद, यह अंतिम डिज़ाइन (कोड नहीं) पर चर्चा करने पर एक और शॉट के लायक हो सकता है। फिर अंतिम डिजाइन चर्चा के परिणाम से मेल करने के लिए कोड को संशोधित करें। अगर उस पर कोशिश करने के बाद और यह मामलों में सुधार नहीं करता है, तो यह स्पष्ट करना चाहिए कि स्थिति सिर्फ एक खराब फिट है और आपको कहीं और देखना शुरू करना चाहिए।
डंक

4

आप जो कह रहे हैं, उससे मुझे लगता है कि उनके पास php डेवलपर्स के खिलाफ पूर्वाग्रह हो सकता है, और इस प्रकार वे हर एक चीज को खोजने की कोशिश कर रहे हैं जो आपकी बात को साबित करने के लिए आपके कोड के साथ गलत है।

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

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

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

Mers मेरे अनुभव में, यह बहुत कुछ होता है क्योंकि कई प्रोग्रामर दावा करते हैं कि php सबसे बुरी प्रोग्रामिंग भाषा है, इसका उपयोग करने वाले सबसे अनुभवहीन प्रोग्रामर हैं। मैं इस कथन से खुद को दूर करता हूं क्योंकि मेरा मानना ​​है कि किसी भी भाषा में महान सॉफ्टवेयर लिखे जा सकते हैं!

That यह मानते हुए कि यद्यपि टिप्पणियां अत्यधिक हैं, कुछ मूल्य उनमें हैं


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

1
@ user1207047 अन्य उत्तरों के बारे में आपकी प्रतिक्रियाओं को पढ़ने के बाद, यह मुझे लगता है जैसे कि आप पहले से ही अपने प्रश्न का उत्तर जानते हैं .. :-) यह बिल्कुल स्पष्ट लगता है कि आपके कोड समीक्षाओं के साथ कुछ गड़बड़ है। हो सकता है कि किसी श्रेष्ठ के साथ बात करने या किसी अन्य टीम में स्थानांतरण का अनुरोध करने का उसका समय हो?
यरोमे

3

क्या रूटीन आधार पर किसी को भी उनके कोड रिव्यू में 100+ कमेंट मिलना आम है? मैं कहूंगा नहीं। क्या यह उन लोगों के लिए आम है जिनकी कोड गुणवत्ता "बहुत कुछ वांछित होने के लिए छोड़ देती है", बहुत सारी टिप्पणियां प्राप्त करने के लिए, बिल्कुल।

हालाँकि, यह कोड समीक्षा प्रक्रिया के "नियम" पर भी निर्भर करता है। हर किसी के अपने विचार होते हैं कि कैसे कुछ किया जाना चाहिए था। यदि आपकी कोड समीक्षा प्रक्रिया टिप्पणियों को "इस तरह के बजाय आपको इस तरह से करना चाहिए" फ़ॉर्म की अनुमति देती है, तो आपको पर्याप्त कोड के लिए भी टिप्पणियों के बहुत सारे मिलेंगे। यदि आपकी प्रक्रिया "दोष" खोजने का इरादा है, तो टिप्पणियों की संख्या बहुत छोटी होनी चाहिए।

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

अद्यतन: कहा कि सभी के साथ, कुछ कोड सिर्फ सादे बुरा है, भले ही दोष मुक्त हो। उस मामले में, समीक्षा टिप्पणी एक एकल टिप्पणी होनी चाहिए जो कुछ ऐसा कहती है। "इस कोड को साफ़ करने की आवश्यकता है। कृपया जब तक कोड [आपका नाम यहाँ] के साथ चर्चा न हो जाए, समीक्षा को स्थगित कर दें।" उस मामले में, कोड की आगे की समीक्षा तब तक रुकनी चाहिए जब तक कि टिप्पणी ठीक न हो जाए।

UPDATE2: @User: क्या आप अपने कोड / डिज़ाइन पर उनमें से किसी एक के साथ चर्चा कर रहे हैं जब आप इसे विकसित कर रहे हैं तो आप इसे लागू कर सकते हैं जो आप देख रहे हैं इससे पहले कि आप इसे अपने तरीके से कर पाएं? क्या आप इस बारे में कुछ भी बदल रहे हैं कि आप उनके सुझावों के आधार पर कोड कैसे विकसित कर रहे हैं या सोच रहे हैं कि आपका तरीका ठीक है? क्या आप उनकी टिप्पणियों से कुछ सीख रहे हैं?

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

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


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

हालांकि एक बात यह है कि यदि आप कोड को नहीं समझ सकते हैं, या डेवलपर ने मौजूदा विधि का उपयोग करने के बजाय पहिया को फिर से चालू किया है, या यदि उसकी विधि में 50 की चक्रीय जटिलता है, तो यह निश्चित रूप से एक टिप्पणी के लिए एक मामला है, भले ही कोई बग नहीं है। कोड और दोहराव को पढ़ने के लिए मुश्किल है एक दायित्व है, एक बग भले ही उसके नहीं। यही कारण है कि मैं कभी भी यह कहने में संकोच नहीं करता कि एक चर का नाम खराब है, या यह समाधान एक अस्थायी युग्मन का परिचय देता है जो कोड को समझना कठिन बना देता है। तकनीकी ऋण का प्रबंधन किया जाना चाहिए।
लॉरेंट बॉर्गुल्ट-रॉय

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

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

मैं आपकी टिप्पणी को फिर से पढ़ता हूं और मुझे महसूस होता है कि शायद हमारी कार्यप्रणाली के कारण हमारा एक अलग दृष्टिकोण है। मैं एक फुर्तीली टीम पर काम करता हूं जहां कोई लीड नहीं है। चूंकि हम सभी समान हैं और सभी कोड गुणवत्ता के लिए जिम्मेदार हैं, इसलिए हम सभी को एक-दूसरे की निगरानी करनी चाहिए। और कोड की समीक्षा प्रत्येक एकीकरण से 3-4 घंटे पहले की जाती है। इसलिए यदि हम बहुत ही नाज़ी हैं या अगर हमने एक रिफ्लेक्टर किया है जो सॉफ्टवेयर के एक पुराने और गंभीर हिस्से को प्रभावित करता है, तो एक बड़ा पुल-रिक्वेस्ट सफाई करना है। इसलिए मैं कोड गुणवत्ता टिप्पणी को "कोई बड़ी बात नहीं" के रूप में देखता हूं।
लॉरेंट बोर्गुल्ट-रॉय

2

हमारी टीम निरीक्षण प्रक्रिया के साथ कुछ महत्वपूर्ण अंतर:

  • एक निरीक्षण का आधार पूरी टीम द्वारा संकलित एक चेकलिस्ट है।
  • फोकस दोष (वर्तमान और भविष्य) है, न कि शैली के लिए शैली।
  • 3 निरीक्षक (लेखक सहित) टिप्पणियों पर चलने के लिए एक साथ बैठते हैं। केवल बहुसंख्यक वोट वाली टिप्पणियां ही शेष हैं।

2

50 LOC के लिए 300 टिप्पणियाँ थोड़ी अधिक लगती हैं और प्रत्येक पुल अनुरोध के लिए वाह - 3 समीक्षक? आपकी कंपनी के पास बहुत सारे संसाधन होने चाहिए।

उपयोगी कोड समीक्षा प्रक्रिया के लिए मेरे अनुभव से कुछ नियम और / या दिशानिर्देश होने चाहिए:

  • टिप्पणियों की प्राथमिकता
  • टिप्पणियों का वर्गीकरण (बग, कोड शैली, आदि)
  • पालन ​​करने के लिए सहमत वास्तुकला / डिजाइन
  • सहमत कोड शैली

यदि आपको समीक्षकों से प्राथमिकता नहीं मिलती है तो अपने जिम्मेदार प्रोजेक्ट मैनेजर / टीम लीडर से पूछें; लागतों के लिए जिम्मेदार व्यक्ति की प्राथमिकताओं के बारे में एक राय होनी चाहिए।

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

यदि आपकी विकास टीम "स्वाद मुद्दों" पर सहमत नहीं हुई है (उदाहरण के लिए "m_" के साथ एक सदस्य चर शुरू करना चाहिए), तो प्रत्येक समीक्षक आपको उसकी शैली का पालन करने के लिए मजबूर करेगा, जो सिर्फ समय / पैसे की बर्बादी है।


1

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

मेरा सुझाव समय बचाने का है। प्रतिक्रिया में तेजी लाएं। मैं:

  • एक ही गलती करने और 50 बार एक ही टिप्पणी करने से बचने के लिए अधिक अंतरिम समीक्षा करें
  • एक समीक्षक के साथ बैठें क्योंकि वे आपके कोड की समीक्षा करते हैं ताकि आप उन मुद्दों के बारे में बात कर सकें जैसे वे आते हैं, इस प्रकार 300 "मुद्दों" को टालने से बचें जो अगले कमिट में मिटा दिए जाएंगे
  • कुछ समय के लिए इन "वास्तविक" डेवलपर्स में से एक के साथ जोड़ी बनाएं क्योंकि आप कोड को यह देखने के लिए लिखते हैं कि वे अलग तरीके से क्या करेंगे

लोग जोड़ी बनाने के खिलाफ बहस कर सकते हैं क्योंकि "इसमें अधिक समय लगेगा" लेकिन यह स्पष्ट रूप से यहां कोई मुद्दा नहीं है।

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