मुझे एक कम-अनुभवी प्रोग्रामर से कोड फिक्सिंग के बारे में कैसे जाना चाहिए?


19

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

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

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

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


4
भविष्य में, क्या कोडिंग दिशानिर्देशों पर सहमत होने की संभावना है, जिससे आप वर्णित गलतियों को रोक पाएंगे?
बेनी

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

एक O (n ^ n) प्रलेखन के बिना क्यों सिर्फ गलत है, अवधि है। यदि आपको वास्तव में यह करना है तो टिप्पणियों ने बेहतर व्याख्या की थी कि क्यों।
लोरेन Pechtel

लिखने के बारे में था कि "हे, हे (n * n) यह बुरा नहीं है, कई अनुप्रयोगों के लिए इसकी आवश्यकता होती है ..." लेकिन फिर मुझे एहसास हुआ कि यह गुणन संकेत नहीं था, लेकिन एक हत्यारा ^!
अधिकतम

O (n) n, O (n) से अधिक परिमाण में हो सकता है यदि O (n) में एक विशाल स्थिरांक है, और n छोटा है। codinghorror.com/blog/2007/09/… फिर फिर, n ^ n चरम है: D
कोडर

जवाबों:


33

कई तरह की कोड समीक्षा नीति तैयार करने जैसी आवाज कई स्तरों पर फायदेमंद हो सकती है। कुछ तात्कालिक लाभ:

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

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


3
+1 कोड समीक्षा इस बारे में जाने का एक शानदार तरीका है। मेरा सुझाव है कि इसे और अधिक "मैं अपने द्वारा किए गए परिवर्तनों को ध्यान में रखते हुए बदलाव करूंगा"
स्टीव जैक्सन

1
+1 मैं कहता हूं कि कोड समीक्षा किसी भी "गोल्डन रूल कोडिंग दिशानिर्देशों" की तुलना में बहुत बेहतर है। कई चीजें कभी ठीक नहीं होती हैं
मैक्स

मैं वास्तव में इस विचार को पसंद करता हूं, धन्यवाद। अब मुझे कोड समीक्षा करने के अच्छे तरीकों पर थोड़ा शोध करना होगा!
TorelTwiddler

1
वास्तव में mumak.net/stuff/your-code-sucks.html पर उपलब्ध कुछ बुनियादी बातों के साथ एक अच्छा और मनोरंजक पेपर है । यह ज्यादातर रचनात्मक तरीके से समीक्षाओं के संचालन के लिए व्यवहारिक तकनीकों के बारे में है, जो सफल समीक्षाओं के लिए बेहद महत्वपूर्ण है।
नितिन

@TorelTwiddler, बस याद रखें कि कोड समीक्षाएं सीखने के लिए हैं, दोष देने के लिए नहीं। उन चीजों को इंगित करें जो उसने अच्छा किया था, इसलिए वह जानता है कि वे एक ही समय में अच्छे हैं क्योंकि सुधार के तरीके सुझाते हैं।
कैफीक

5

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

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


2

क्या हम यह अनुमान लगा सकते हैं कि परियोजना "काम करती है" और उचित समय में की गई थी (हालांकि कुछ अहंकारी लेकिन निश्चित डिजाइन के साथ)? यदि ऐसा है, तो यह उन कई परियोजनाओं की तुलना में बेहतर स्थिति में है जो मैंने वर्षों में देखी हैं।

मुझे लगता है कि अधिक संचार आपकी टीम को मदद करेगा - और यह नियमित कोड समीक्षा के साथ किया जा सकता है।

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

लोग अच्छी तरह से सीखते हैं जब वे देखते हैं कि वास्तव में अच्छा सामान कैसा दिखता है। यह व्यवस्थित रूप से हर छोटी खामी को इंगित करने से बेहतर है। O (n ^ n), हालांकि, धीरे और रचनात्मक रूप से बताया जाना चाहिए।


0

अपना ज्ञान साझा करें

मैं उसे अपने नए प्रोजेक्ट पर सीनियर से लेकर जूनियर तक कुछ पढ़ाने में मदद की पेशकश करूंगा।

क्यों नहीं दोनों परियोजनाओं पर जोड़ी प्रोग्रामिंग?

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