मैं कैसे जज कर सकता हूं कि कोई परियोजना विशेष रूप से जटिल है या यदि मैं इसे चुनने में धीमा हूं?


16

मैं एक बड़ी परियोजना पर बहुत कम प्रगति कर रहा हूं। स्रोत बड़े पैमाने पर है, ऑब्जेक्ट्स की कई परतें, मैकरोनी कोड, मल्टीपल इनहेरिटेंस के डबल-डायमंड ग्राफ़, आधा-बेक्ड फीचर्स जब मूल लेखक छोड़ गए, और कोई नहीं जानता कि इसके कई टुकड़ों को जिस तरह से डिजाइन किया गया था।

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

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


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

2
विशेष रूप से "क्या गुच्छा ..." के बारे में भूल जाते हैं, जब कहा जाता है कि व्यक्ति (मालिक) मालिक, मालिक के भाई, बॉस के बॉस, या बॉस के 'भतीजे, आदि हैं!
डैरन डब्ल्यू

2
आह, लापता "क्यों"। जब आप उन्हें पता लगाते हैं, तो उन्हें रखना याद रखें।

@ डारेनव - यह स्पेगेटी कोड है, न कि मैकरोनी कोड: डी (क्षमा करें, मुझे करना था)।
जस का दिन

1
@ जरा गूगल मैकरोनी कोड के लिए ... सिर्फ स्पेगेटी की तुलना में पास्ता के और भी प्रकार हैं ;-)
जुरगेन ए। एरहार्ड

जवाबों:


6

उस सवाल को तय करने का एकमात्र तरीका एक ही मुद्दे से निपटने के लिए और अधिक प्रोग्रामर का अधिग्रहण करना है और देखना है कि क्या वे बेहतर किराया देते हैं।

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


16

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

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

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


5
+1 यह वास्तव में कुछ जटिल प्रणालियों को जानने के लिए शुरू होने में 6 महीने से ऊपर का समय ले सकता है। भले ही कोड आधार "अच्छा" हो, अलग-अलग डेवलपर्स और टीमों की अलग-अलग शैलियाँ होती हैं, और यह कभी-कभी आपके बीयरिंग प्राप्त करने में समय लेती है।
रयान हेस

3
@ रयान, और उसके 6 महीने बाद, आप खुद समस्या का हिस्सा बन जाते हैं :)
बेंजोल

@ बेंजोल हां, मैं वहां गया हूं।
रयान हेस

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

अपने निजी दस्तावेज बनाने के लिए +1। जब मैं यह काम करता हूं, तो मैं बहुत सारे नोट्स बनाता हूं (या तो कोड में, या कागज पर) और बहुत सारे आरेख खींचता हूं (जो आमतौर पर उस समय मेरे लिए केवल कुछ का मतलब होता है) मदद करता है। सभी के लिए एक अतिरिक्त प्लस जो आपके खुद के दिमाग में अवधारणाओं का सुदृढीकरण है।
एंडी हंट

6

कभी सीखने की अवस्था देखी। सीखने का अभिशाप

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


2

एक बार में एक बार टुकड़ा, इसे भंग करें

आपकी स्थिति बहुत सामान्य है, "पकड़ में आने" में समय लगता है जैसा कि दूसरों ने पहले ही उल्लेख किया है।

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

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

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

"एक समय में एक टुकड़ा" अन्य परियोजनाओं पर काम कर सकता है, लेकिन इसमें बहुत सारे वर्ग हैं जो दूसरों से प्राप्त होते हैं, मित्र वर्ग, एक-दूसरे की पारी की ओर इशारा करते हैं, ऐसे कुछ भाग हैं जिन्हें स्वतंत्र रूप से समझा जा सकता है।
डैरनव

मुझे यकीन है कि इसका जटिल चक्रव्यूह (कुछ ऐसा है जो समय के साथ "विकसित" हुआ है)। हालाँकि, यदि आप एक कार्य के साथ शुरू करते हैं, तो क्या आप मुझे बता रहे हैं कि आप इसे अंत तक ट्रेस नहीं कर पा रहे हैं?
डार्क नाइट

जब उपयोगकर्ता एक बटन क्लिक करता है, उदाहरण के लिए, डेटा के प्रवाह या घटनाओं के अनुक्रम को ट्रेस करना असंभव हो गया है।
डैरनव

1

एक अलग दृष्टिकोण लेने के बारे में: इस कोड के बारे में आपको क्या जानने की आवश्यकता है और क्या आपके पास इसे मापने का कोई तरीका है? उदाहरण के लिए, यदि आप बग को ठीक करने का प्रयास कर रहे हैं, तो आपको एक अलग तरह के गोता लगाने की आवश्यकता हो सकती है यदि आप एक भाषा से दूसरी भाषा में कोड स्थानांतरित करने की कोशिश कर रहे हैं, जैसे VBScript से C #। यदि आप वर्तमान कोड से सभी आवश्यकताओं को प्राप्त करने का प्रयास कर रहे हैं, तो मुझे थोड़ा समय लग सकता है, हालांकि मुझे संदेह है कि ज्यादातर लोगों को उस तरह की समस्या होगी।


मुझे यह टिप्पणी पसंद आई। एक विशिष्ट लक्ष्य होना चाहिए और उस (और केवल उस) लक्ष्य को पाने के लिए काम करना चाहिए। अन्यथा, आप इसमें खो जाएंगे - बहुत कुछ एक नक्शे की तरह।
NoChance

1

कुछ नया सीखने के दौरान, कई छात्र सोचेंगे, “धिक्कार है, यह मेरे लिए कठिन है। मुझे आश्चर्य है कि अगर मैं बेवकूफ
हूं। ...

स्मार्ट शब्दों के साथ श्री आरोन हिलेगास।

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

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