एकमात्र डेवलपर के रूप में काम करना: कोड प्राप्त करना अधिक देखा गया


39

मेरे पास अपने आप पर काम करने के अलावा कोई विकल्प नहीं है , और अपने काम को देखने के लिए पर्याप्त समाधान नहीं मिल सकता है, पवित्रता की जाँच की, किसी के साथ विचार-मंथन करना, सर्वोत्तम प्रथाओं पर चर्चा करना और इतने पर।

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

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

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

क्या मेरे कोड को देखने के लिए एक सलाहकार को भुगतान करने के अलावा कोई जवाब है?


3
मेरे पास यह समस्या है (फ़न-फ़न प्रोजेक्ट्स के साथ), हालाँकि, मैं केवल इतना भाग्यशाली हूं कि कुछ करीबी प्रोग्रामर दोस्तों को अपने कोड के माध्यम से देखने के लिए तैयार हूं।
ऑस्टिन हाइड

23
आप हमेशा अपने आप से बात कर सकते हैं - यह विशेष रूप से पागलपन की जाँच के लिए अच्छा है :-)
डैनी व्रॉड

4
यदि आप इसे बर्दाश्त कर सकते हैं, तो यह एक कारण है कि व्यवसाय पार्क में कार्यालय / डेस्क को किराए पर लेना अच्छा है (आदर्श रूप से जहां आईटी लोग क्लस्टर करते हैं)। मेरे पड़ोसी कार्यालयों में आईटी लोगों के साथ मेरी कई अच्छी बातचीत हुई जब मैं एक अकेला-प्रोग्रामर था जो एक कार्यालय में काम कर रहा था।
JW01

6
खुद से काम करना बेवकूफों के साथ काम करने से बेहतर हो सकता है।
जॉब

2
वास्तव में समाधान नहीं है, लेकिन आप एसओ चैट या एक उपयुक्त आईआरसी चैनल पर हैंग कर सकते हैं; वह अपने आप से काम करने के कुछ बोझ को कम कर सकता है।
तिखन जेल्विस

जवाबों:


36

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


अच्छा था! ... 15
मार्जन वेनेमा जूल

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

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

@ दाविद: आपने एक निश्चित समय के बाद कोड को वापस देखने का उल्लेख किया, भले ही उस समय कोई आवश्यकता न हो। आपने शुरू में कोड को केवल तब देखने के लिए नहीं कहा था जब आपको नई सुविधाएँ जोड़ने के लिए ऐसा करना पड़े .. इसलिए यदि - आपने जो कहा उसके अनुसार - आपको अंततः सभी पुराने कोड को देखना होगा, ऐसा क्यों नहीं करना है एक निश्चित समयावधि के बाद एक पल में इतना प्रासंगिक है?
थॉमस बोनीनी

3
@Krelp: यदि आप अपनी क्षमताओं में पर्याप्त रूप से आश्वस्त हैं, तो सही से आगे बढ़ें और काम करने वाले कोड को केवल तभी देखें जब आपको ऐसा महसूस हो लेकिन यदि आप अभी शुरुआत कर रहे हैं और इस बात के बारे में अनिश्चित हैं कि आप अपने कोड को कितनी अच्छी तरह से संरचित कर रहे हैं तो लगातार देख रहे हैं कुछ हफ़्ते पहले आपने जो लिखा था, उसे वापस लेना और उसे उचित कोड संरचना सीखने का एक अच्छा तरीका है। मेरी सलाह उन लोगों के लिए थी जो सुधार करना चाहते थे और उस बिंदु तक पहुँच सकते थे जहाँ पहले लिखित कोड का पुनर्गठन कम और कम आवश्यक हो जाता है क्योंकि प्रारंभिक संस्करण में उचित एक्स्टेंसिबल संरचना है। मेरी सलाह को नजरअंदाज करने के लिए आपका स्वागत है।
davidk01

17

क्या मेरे कोड को देखने के लिए एक सलाहकार को भुगतान करने के अलावा कोई जवाब है?

नहीं।

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

यदि वे आपके कोड को देखे बिना भी आपके डिजाइन को सत्यापित करते हैं, तो यह काफी अच्छा होना चाहिए।


4
कई पेशेवर लेखक ऐसा करते हैं।
जेफो जूल

10

स्व-जांच तकनीकें हैं जैसे कि परीक्षण संचालित विकास जो प्रतिक्रिया प्रदान करने में मदद कर सकता है। जब यह करना मुश्किल हो जाता है तो आपको पता चल जाता है कि आपकी वास्तुकला संभावना से बाहर है।

एक प्रश्न तैयार करना और इसे एक आत्म-निहित समस्या में बॉक्सिंग करना अक्सर इतना काम लेता है कि जब तक आप इसे पर्याप्त रूप से तैयार करते हैं, तब तक आप अपने स्वयं के प्रश्न का उत्तर देते हैं इससे अधिक समय में अन्यथा इसे लिया जाएगा।

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

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


मैं यह देखने में विफल हूं कि टीडीडी यहां कैसे उत्तर है।
हारून

1
@Aaronaught मैं TS के समान नाव में हूँ और मैं आपको आश्वस्त कर सकता हूँ कि परीक्षण लिखना (या तो TDD में कोड से पहले या उसके बाद) आपके चेक साने का तरीका है। यदि आप इसका परीक्षण नहीं कर सकते, तो यह बुरा है।
टिजिन

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

2
@ चेतावनी: आप मान्य बिंदु बनाते हैं, लेकिन फिर भी मैं अपनी बात से खड़ा होता हूं कि कोड संन्यास की जांच करने के लिए परीक्षण बहुत अच्छा तरीका है (हालांकि वास्तव में एकमात्र तरीका नहीं है); अनुभव ने मुझे साबित कर दिया है, यह देखने के लिए विशेष रूप से उपयोगी है जहां एसआरपी का भारी उल्लंघन होता है।
१२:०२ पर

@ मर्क: यह अच्छा है, लेकिन इन सभी उपाख्यानों का मूल्य "2 सप्ताह में 50 पाउंड खो दिया" विज्ञापन दावे से भी कम है, क्योंकि जिस चीज के बारे में बात की जा रही है वह वास्तव में मापा नहीं गया है , अकेले नियंत्रित स्थितियों के तहत मनाया जाता है । हां, इस बात के प्रमाण हैं कि टीडीडी पूर्व-रिलीज़ दोष को कम करता है, और यह एक महान बात है; कोड समीक्षाएँ एक पूरी तरह से अलग समस्या को हल करती हैं और यह मानने का कोई आधार नहीं है कि TDD एक ही हल करती है। "ओल्ड-स्कूल" इकाई परीक्षण वास्तव में इसके लिए बेहतर हैं क्योंकि वे उनके समूहों के बजाय व्यक्तिगत कक्षाओं पर परीक्षण क्षमता की कमी रखते हैं।
Aaronaught

6

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


4

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

अन्यथा यह आपके लिए है कि आप वर्तमान अभ्यासों को पढ़ें और अद्यतित रहें। एल्विन की दुनिया में नए और बेहतर होने के लिंक के लिए मुझे एल्विन एस्क्राफ्ट की मॉर्निंग ड्यू पसंद है।


4

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


3

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


2

मुझे आपकी स्थिति का विवरण नहीं है, लेकिन मैं अब जहां अनुभव के छात्रों के लिए कई भूखे हूं, जो एक प्रशिक्षु के रूप में काम करने और कुछ सीखने के लिए खुश हैं।

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

वे विशेषज्ञ नहीं हैं और वे कभी-कभी आपको गुमराह भी कर सकते हैं, लेकिन आमतौर पर वे हर चीज को चुनौती देते हैं और विचारों से भरे होते हैं और एक चर्चा के लिए महान होते हैं जहां आपको अपने कोड के हर विवरण का बचाव करना होता है।


2

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

मैं the५% प्रश्नों के लिए समान अनुभव करता हूं जो मैं पोस्ट करता हूं।

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

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

इसका स्पष्ट उदाहरण:

जब मैं एक भाग जाने वाला डेवलपर था, तो मैंने ASP.Net एरोर पेज के साथ बहुत बार डील की। मुझे Google को यह पता लगाने की आवश्यकता है कि क्या गलत है। इससे पहले कि मुझे सही समाधान मिल जाए, इसमें कई घंटे लग सकते हैं। मैंने मूल रूप से पुस्तक में प्रत्येक गलती की और बाद में मुद्दों को डीबग करने के परिणामों से निपटना पड़ा।

अब, जब कोई त्रुटि सामने आती है, तो मैं पहले से ही "सामान्य संदिग्धों" को जानता हूं कि इस समस्या का कारण क्या हो सकता है। "सामान्य संदिग्धों" की मेरी मानसिक सूची प्रभावी रूप से उन समस्याओं पर आधारित है जो मैंने अपने करियर के दौरान सबसे अधिक समस्याओं के साथ की है। Googling के घंटों के समय-अक्षम पैर के काम को करने के बिना, मैंने यह मानसिक सूची कभी नहीं बनाई । लेकिन अब जब मेरे पास वह मानसिक सूची है, तो मैं समस्या निवारण में काफी तेज हूं।


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

मैं यहां कुछ असहमत हूं। आप सही कह रहे हैं कि इंटरनेट संचार कम उत्तरदायी है, लेकिन आप (मेरी राय में) गलत हैं कि यह आपके लिए बुरा है।

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

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

बिंदु में चार मामले:

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

यहां अंतर्निहित विचार यह है कि एक कठिन विनिमय प्रणाली लोगों को सही और तथ्य-जांच किए गए आदान-प्रदान करने के लिए प्रोत्साहित करती है । सजा की गंभीरता (= कठिन सुधार प्रक्रिया) आपको गलतियाँ न करने की सीख देती है।


इसके अलावा, एक अच्छी तरह से परिभाषित प्रश्न पूछने के लिए विवरणों को छिपाने से किसी ऐसे व्यक्ति की समस्याओं की संभावना समाप्त हो जाती है जिसे आपने नहीं सोचा था।

जब आप एक MCVE बनाते हैं , तो आपको इसे केवल बनाना नहीं चाहिए और इसे प्रश्न में पोस्ट करना चाहिए। आपको पहले इसे अपने लिए बनाना चाहिए , ताकि आप समस्या को अलग कर सकें। और फिर, जब आपको लगता है कि समस्या अब कम नहीं हो सकती है, और आप अभी भी कारण नहीं देखते हैं; तो आपके पास StackOverflow के लिए एक वैध प्रश्न है।

इसका स्पष्ट उदाहरण:

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

  • जब मैं यह सेटिंग बदलता हूं तो क्या होता है?
  • यदि मैं कोड को छोटा करूं तो क्या मैं इस मुद्दे को पुन: पेश कर सकता हूं?
  • कौन सी सेटिंग्स समस्या को पुन: उत्पन्न करना संभव / असंभव बनाती हैं?

90% मामलों में, मुझे इस मुद्दे का कारण लगता है क्योंकि सैंडबॉक्स ने मुझे आस-पास के संदर्भ (या उदाहरण के लिए, कोड के विभिन्न हिस्सों के लिए आने वाले मूल्यों के बारे में किसी भी अनिश्चितता के बिना विचलित हुए कोड को देखने में मदद की।

अन्य 10% मामलों में, मुझे इस मुद्दे को पुन: पेश करने के लिए न्यूनतम कोड के साथ छोड़ दिया गया है, जो स्टैकओवरफ़्लो पर पोस्ट करने के लिए एक आदर्श उदाहरण स्निपेट के रूप में कार्य करता है।


अंतिम लेकिन कम से कम, मैं स्पष्ट कारणों के लिए दुनिया की अपनी पूरी परियोजना को अनंत काल तक देखने के लिए पोस्ट नहीं करना चाहता।

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

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