सबसे कम प्रोग्रामिंग प्रोग्रामिंग उपकरण [बंद]


35

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

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

आपको लगता है कि किस प्रकार के प्रोग्रामिंग टूल को सबसे कम आंका गया है? अपने उत्तर को प्रेरित करें।


3
हमारा दिमाग? - -
ट्रूफा

ठीक है, लिस्प प्रविष्टि को कौन जोड़ना चाहता है? * मुस्कराहट *
मार्क सी

जवाबों:


70

एक रबर बतख। हाँ सच।

http://en.wikipedia.org/wiki/Rubber_duck_debugging

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

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


6
मैं अपने पति के साथ हर समय ऐसा करती हूं। एक तकनीकी सहायता के रूप में, प्रोग्रामिंग की क्षमता के सिर्फ एक चापलूसी के साथ, वह 60% के बारे में समझता है कि मैं क्या कहता हूं, लेकिन मुझे 40% समझाने के लिए मजबूर करता है जो मुझे समझ में नहीं आता है। अवसरों की संख्या जहां यह काम करता है वास्तव में काफी प्रभावशाली है।
एथेल इवांस

1
आप हसो। मेरे पास एक सहकर्मी था जो वास्तव में उसकी मेज पर एक रबर बतख है।
बेरिन लोरिट्श 20

57
मैंने इसे आज़माया, लेकिन मेरी रबर बतख समस्या पर ध्यान केंद्रित नहीं कर पाई। मैं प्रोग्रामिंग में वास्तविक रुचि के साथ एक उचित योग्य रबर बतख कहां पा सकता हूं?
स्टीव ३१

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

1
@Steve: जापानी शोधकर्ता इस पर काम कर रहे हैं, लेकिन मुझे नहीं लगता कि वे कहीं भी पास हैं: youtube.com/watch?v=3g-yrjh58ms
Rei Miyasaka

42

कलम और नोटबुक।

  1. बिना बिजली के काम करता है।
  2. पोर्टेबल।
  3. मीटिंग्स में बोर होने पर डूडल पर /
  4. उपयोगी जानकारी संग्रहित करें।
  5. यदि इसे नीचे लिखा गया है, तो लोग इसे अधिक महत्व देते हैं।
  6. दूसरे इसे पढ़ सकते हैं और सीख सकते हैं।

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

3
रूसियों ने एक पेंसिल का इस्तेमाल किया।
जॉब

@ जौब है, मैं अभी भी स्याही की एक बोतल का उपयोग करता हूं! (... ठीक है, केवल सुलेख के लिए, लेकिन अभी भी। :))
मातेन उल्हाक

टैबलेट पीसी के बारे में क्या?
मतीन उल्हाक

1
@ जोब: ... और वोदका!
Spoike

38

सपाट पाठ फ़ाइलों में लॉग आउटपुट या डेटा की तुलना करते समय डिफ टूल का उपयोग किया जाता है। या शायद यह सिर्फ एक जगह है? मुझे लगता है कि यह डिबगिंग के लिए बहुत उपयोगी और उपयोगी है जो प्रोग्राम के विशाल लॉग की तुलना करता है और एक या दो विवरणों को बदल देता है जो बदल गए हैं।

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

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


1
++ बिल्कुल diffहतोत्साहित है। प्रोफाइलिंग के विषय पर, आप सोच में अकेले नहीं हैं कि वे उपयोगी होने चाहिए, लेकिन आप खुद नहीं जानते कि कैसे। इसे देखो।
माइक डनलैवी

हाँ, मैंने वास्तव में एक रूपरेखा बनाने वाले उपकरण को सीखने के बारे में सोचा है, लेकिन कभी भी ऐसा नहीं किया गया
Anto

23
प्रोफाइलिंग के लिए +1, अलग-अलग टूल के लिए +1, XML टूल्स के लिए -1। कुछ लोग, जब एक समस्या पेश करते हैं, तो सोचते हैं "मुझे पता है, मैं XML का उपयोग करूंगा।" <Problem:Worsening> <Problem:TimeDescription>Now</Problem:TimeDescription> <Problem:Posessive>they have</Problem:Posessive> <Problem:Quantity>many, many</Problem:Quantity> <Problem:WorseningDescription>more problems</Problem:WorseningDescription></ProblemWorsening>
मेसन व्हीलर

2
@ मेसन: प्यारा एक्सएमएल।
माइक डनलैवी

10
@Mason व्हीलर: मैं एक्सएमएल का सुझाव नहीं दिया एक के रूप में समस्याओं को हल करने के लिए उपकरण, मैं सुझाव अच्छा एक्सएमएल उपकरण - आप जब है XML के साथ काम करने के लिए, सुनिश्चित करें कि आप कि यह कम से बहुत अच्छा है एक संपादक / उपकरण ले ली है। ऐसा कुछ जो Xpath प्रश्नों, स्कीमा सत्यापन, परिवर्तन, मूल्य बनाम संरचना तुलना (एक विशेष प्रकार का भिन्न उपकरण जिसका मुझे अनुमान है) आदि पर अमल कर सकता है ... सरल संपादक केवल हाइलाइटिंग के साथ इसे काट नहीं सकते हैं जब चीजें गड़बड़ हो जाती हैं - वे अक्सर चीजें बनाते हैं इससे भी बदतर (btw मुझे आपका XML कोड पसंद है;)
FrustratedWithFormsDesigner

37

नियमित अभिव्यक्ति

वे सिर्फ इतने उपयोगी हैं। लॉग फ़ाइलों के माध्यम से खोज करने, पाठ को पार्स करने आदि में वे मदद करते हैं। वे बहुत उपयोगी होते हैं।

मुझे यह अजीब लगता है कि मैं कितने लोगों को जानता हूं कि कभी भी उनका उपयोग न करें क्योंकि उनके साथ सीखने का एक सा हिस्सा है। बहुत बार मैं देखता हूं कि लोग चीजों को कठिन तरीके से करते हैं (ध्यान दें: रेगेक्स से पहले मैंने चीजों को कठिन तरीके से किया था) जब एक साधारण रेक्सक्स इसे जल्दी से नीचे ला सकता था।


8
याद रखें कि नियमित एक्सप्रेशन स्विस आर्मी चाकू नहीं हैं, भले ही वे सही तरीके से लागू होने पर महान हों।
एन्टो

10
अत्यंत उपयोगी है - लेकिन अक्सर दुर्व्यवहार किया जाता है, जिसके कारण क्रिप्टोकरंसी को कोड नहीं किया जाता है। पुरानी "अब आपके पास दो समस्याएं हैं" कहने का वास्तविकता में कुछ आधार है।
213

4
RegExes एक स्विस सेना चाकू हैं: कई त्वरित नौकरियों के लिए एक पर्याप्त उपकरण, हालांकि शायद पूरे घर के निर्माण के लिए सही उपकरण नहीं है।
जेसनट्र्यू

4
हम्म, किसी कारण से मुझे हमेशा आभास हुआ कि रेक्सक्स को कम करके आंका गया था। बहुत बार मैं लोगों को एक रेगीक्स के लिए पहुंचता हुआ देखता हूं, जहां एक साधारण विभाजन / फॉर-लूप पर्याप्त होगा या जब रेगेक्स बस जवाब नहीं हैं (उदाहरण के लिए xml / html पार्स करना)।
MAK

मैंने दोनों घटनाएँ देखी हैं: Regex? यहाँ सामान अपठनीय / धीमा / सम्मिलित है और "रेगेक्स के साथ पार्स (पूरी तरह से गैर-नियमित व्याकरण सम्मिलित करें) का सबसे अच्छा तरीका क्या है?"
जेसनट्र्यू

24

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

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


अच्छी टीम के साथी कभी भी मूल्यवान नहीं हो सकते। अधिकांश सॉफ्टवेयर और हार्डवेयर कर सकते हैं।
अनाम टाइप

19

गूगल। बहुत कम समस्याएं हैं जो पहले से ही हल नहीं हुई हैं और दस्तावेज हैं। एक अच्छी तरह से ट्यून की गई Google क्वेरी सभी को बहुत समय बचा सकती है।


13
एक अच्छा उपकरण, लेकिन मुझे यकीन नहीं है कि मैं इसे कम करके आंका जाऊंगा, कम से कम अब और नहीं (शायद मैं 9 या 10 साल पहले सहमत हुआ होगा)।
FrustratedWithFormsDesigner

12
मुझे क्षमा करें, लेकिन Google को कम करके आंका गया? बहुत कम से कम Google को बहुत कम आंका गया है :)
eestein

2
मैं जानता हूँ मैं जानता हूँ! लेकिन यह कहने के लिए मेरे तर्क को कम करके आंका गया है कि मुझे संदेह है कि आप इससे सहमत होंगे: StackOverflow पर पूछे जाने वाले प्रश्नों में से कम से कम 75% Google के साथ आसानी से जवाबदेह हैं, हाँ? स्पष्ट रूप से, यह कुछ हद तक कम करके आंका जाता है यदि कई लोग इसका उपयोग नहीं कर रहे हैं। यदि मेरा तर्क त्रुटिपूर्ण है, तो मैं अपना उत्तर हटा दूंगा।
एडम क्रॉसलैंड

3
@ अदम क्रॉसलैंड: 75% की तरह किया जा रहा है। मुझे लगता है कि यह उससे अधिक है।
एस.लॉट

1
@adam @ s.lott तो मुझे लगता है कि बिंदु यह है कि Google का उपयोग ठीक से नहीं किया गया है। इससे मैं सहमत हूं। इतने सारे सवालों के जवाब दिए जा सकते हैं (अगर पूछे जाने की जरूरत नहीं है) अगर लोग ठीक से Google को जानते थे। सादर।
eestein

16

"अड़चन" खोजने के लिए सबसे दूर और सबसे कम कीमत वाला उपकरण है डिबगर में Ctrl+ Cया "पॉज़" बटन।

इस पोस्ट के अंतिम पैराग्राफ की जाँच करें , और इस पोस्ट , और इस पोस्ट , शुरुआत के लिए।

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

हाँ, यह नीचे-चारा है, लेकिन यह काम करता है।


किसी को कुंद यंत्रों को कम नहीं समझना चाहिए। स्पष्ट रूप से यह हमेशा सही उत्तर नहीं होता है, लेकिन यह हो सकता है। जरूरत पड़ने पर इसे असली प्रोफाइलर द्वारा परिष्कृत करने के लिए इसे पहला ऑर्डर सन्निकटन कहें।
क्रिस्टोफ प्रोवोस्ट

@ क्रिस्तोफ़: ऐसा सोचने के लिए ललचा रहा है, और ऐसी समस्याएं हैं जो इसे संभाल नहीं सकती हैं, और ऐसे मामले हैं जहां नमूने प्राप्त करना आसान नहीं है, लेकिन प्रोफाइलर उन मामलों को संभाल नहीं सकते हैं, एक निश्चित प्रकार को छोड़कर, जैसे कि ज़ूम , और फिर भी वे वास्तव में आपको समस्या के सही नेतृत्व के लिए बेहतर नहीं हैं।
माइक डनलवे

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

14

आपको लगता है कि किस प्रकार के प्रोग्रामिंग टूल को सबसे कम आंका गया है? अपने उत्तर को प्रेरित करें।

संकलक।

अधिकांश लोगों को यह समझने में समय नहीं लगता है कि उनकी पसंद का कंपाइलर क्या करता है। वे बस महसूस करते हैं कि यह कोड को एक चल कार्यक्रम में बनाता है और जहां तक ​​वे जाते हैं। अधिकांश आधुनिक लोगों पर, ऐसे कई कॉन्फ़िगरेशन हैं जिन्हें आप फ़ीड कर सकते हैं, जिससे यह हो सके कि आपको इसकी आवश्यकता है। यहाँ एक उदाहरण है, मैं शर्त लगाता हूं कि आपके कार्यालय के आधे देवों को यह पता नहीं है कि चेतावनी को त्रुटियों के स्तर के रूप में कैसे सेट किया जाए (यह मानते हुए कि वास्तव में एक है)। डिबग प्रतीकों को आउटपुट करने के लिए आपके पास क्या विकल्प हैं? कौन सी अनुकूलन (या किस स्तर) आप इसे बनाना चाहते हैं। सूची चलती जाती है।


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

@ माथिउ एम यह भी एक अच्छी बात है। बहुत से लोग इसके लिए आसान तरीके भूल जाते हैं ताकि आपको मदद मिल सके।
kemiller2002

3
प्रत्येक संकलक चेतावनी एक अनमोल उपहार है। उन्हें अनदेखा न करें! अधिक की मांग करें! -वायर अनिवार्य होना चाहिए।
क्रिस्टोफ़ प्रोवोस्ट

@ क्रिस्तोफ: -pedantic -Wall -Wextra -Werror... हालांकि इसके बाद कुछ भी बनाना मुश्किल हो सकता है: पी
मैथ्यू एम।

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

10

आपका दिमाग। इसके बिना अन्य साधनों का बहुत अर्थ नहीं होगा।


4
मैंने ज्यादातर मौकों पर मेरा ध्यान नहीं दिया है।
डेविड थॉर्नले

3
"कम या ज्यादा भूल": -S

5
मैं कहूंगा कि इसे कम करके आंका गया है। बहुत से लोग हमेशा शॉर्टकट की तलाश में रहते हैं ताकि उन्हें सोचने की जरूरत न पड़े। सामान्य ज्ञान और तर्क के लिए कोई प्रतिस्थापन नहीं है, और उपकरण बस इसे प्रतिस्थापित नहीं कर सकते हैं।
jnevelson

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

1
कुछ टिप्पणियों से मुझे मेरी राय बदलने के लिए मिली, +1 :)
एन्टो

10

अच्छे पुराने:

print

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


मुझे लगता है कि यह भाषा और डिबगर पर निर्भर करता है। आजकल लोकप्रिय भाषाओं के लिए सबसे अच्छे IDEs द्वारा दिए जाने वाले डिबगर्स के प्रकार आपको प्रिंट स्टेटमेंट की तुलना में चीजों को बहुत आसान बनाते हैं।
बिली ओनेल

8

पुरानी स्क्रिप्ट्स ... कोई फर्क नहीं पड़ता कि हम अगली पीढ़ी की कितनी भाषाओं का विकास करते हैं, हम अभी भी स्क्रिप्ट पर बहुत भरोसा करते हैं, दिन के अधिकांश कार्यों को स्क्रिप्ट की कुछ लाइन लिखकर प्राप्त किया जा सकता है।


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

1
सच है, बड़ी स्क्रिप्ट देखने के लिए भीषण होती हैं और कोई इसके लिए पर्ल या अजगर का उपयोग कर सकता है। हालांकि वे अभी भी छोटे काम करने में महान हैं।
गौरव सहगल

@ बिली पायथन का उपयोग करें। स्पेगेटी समस्या हल हुई :)
इवान प्लाइस

7

पेन और व्हाइटबोर्ड।

जब आप कुछ समझाने की कोशिश कर रहे हैं तो आप कम तकनीक को नहीं हरा सकते।


3
डुप्लिकेट जवाब - programmers.stackexchange.com/questions/57148/...
ChrisF

डुप्लिकेट उत्तर हो सकता है, लेकिन यह व्हाइटबोर्ड के लिए मेरे अलग वोट कमाता है।
कार्सन मायर्स

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


5

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


1
मुझे यकीन नहीं है कि उन्हें कम आंका गया है ...
Anto

3
निश्चित रूप से कम करके आंका गया ... पूरी तरह से पर्ल। यह एक लंग है। बहुत अच्छी तरह से रखने के साथ चीजों को सरल आदर्श वाक्य बनाया गया है ... जैसे, यह त्वरित कार्यों के लिए अनमोल है जो बस करने की आवश्यकता है।
रूक गया

@ देखें: मुझे यकीन नहीं है कि 100 से अधिक ऑपरेटरों वाली भाषा को "सरल" कैसे माना जा सकता है। उपयोगी, संभवतः। लेकिन "सरल" नहीं।
बिली ओनेल

@ बिली - सरल शक्तिशाली को बाहर नहीं करता है। मुझे कैलकुलेटर सरल लगते हैं। मुझे नहीं पता कि खदान पर 300 कार्यों में से आधा क्या करता है, लेकिन यह इसकी सादगी को कम नहीं करता है।
रूक

4

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

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

इकाई परीक्षण और टीडीडी आपके कोड को परीक्षण योग्य बनाए रखने और रीफैक्टरिंग के डर को रोकने के लिए आगे आता है।

इनका उपयोग करें और आप आसानी से सही अनुरक्षण कोड लिखने की ओर बढ़ेंगे जो DRY सिद्धांत के अनुरूप है और स्व दस्तावेज है।


4

यूनिट परीक्षण निम्नलिखित लाभ प्रदान करता है:

  • डेवलपर्स कोड के पहले ग्राहक बन जाते हैं। जितनी जल्दी एक बग पकड़ा जाता है, उसे ठीक करना उतना ही महंगा होता है। बिल्ड, स्थापना, या परिनियोजन से पहले कीड़े पकड़े जा सकते हैं ।
  • परीक्षण कोड पर आपके दृष्टिकोण को बदल देता है। क्या डिजाइन स्पष्ट है? क्या यह कोने के मामलों को संभालता है?
  • हॉथोर्न प्रभाव गुणवत्ता में सुधार करेगा, बस यह घोषणा करके कि एक टीम गुणवत्ता / परीक्षण मैट्रिक्स प्रकाशित कर रही है।
  • यहां तक ​​कि अगर परीक्षणों को स्रोत नियंत्रण में नहीं देखा गया है, तो वे नए इलाके का पता लगाने और सीखने का एक शानदार तरीका हो सकते हैं।
  • कम कीड़े की एक उच्च संभावना!

4

कोड जनरेटर

कोड जनरेटर एक सरल परिभाषा से बड़ी मात्रा में कुशल और बग-मुक्त कोड बना सकते हैं। ORM प्रकार उपयोग डेटा एक्सेस कक्षाएं बनाने के लिए सबसे स्पष्ट हैं, लेकिन कई और संभावित उपयोग हैं।

कोड जनरेटिंग सपोर्ट अभी भी अपनी शैशवावस्था में प्रोग्रामर और फ्रेमवर्क दोनों दृष्टिकोण से लगता है, लेकिन मेरा मानना ​​है कि यह कुछ ऐसा है जिसे हम अधिक से अधिक देखेंगे। में नेट आप के साथ dabbling शुरू कर सकते हैं CodeDOM सामान।


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

3

मैं AgentRansack का भारी उपयोग करता हूं । यह बहुत जल्दी से हजारों फाइलों के माध्यम से खोज करने में एक जबरदस्त मदद है। इसने मुझे इतना समय बचा लिया है, लेकिन मुझे बहुत सारे प्रोग्रामर के बारे में नहीं पता है जो इसके बारे में जानते हैं या इसका उपयोग करते हैं।


3

औपचारिक तरीके।

http://www.amazon.com/Discipline-Programming-Edsger-W-Dijkstra/dp/013215871X

http://www.amazon.com/Science-Programming-Monographs-Computer/dp/0387964800/ref=pd_sim_b_1

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

लेकिन कुछ बस बेतरतीब ढंग से अनुमान लगाने लगते हैं। उन्हें अधिक सहायता की आवश्यकता है और औपचारिक तरीकों से उन्हें जिस तरह की मदद की आवश्यकता हो सकती है।

यह कोड के लिए सिर्फ बीजगणित (और कलन) है। बहुत जटिल या परिष्कृत कुछ भी नहीं।


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

3

सूरज की रोशनी और ताजी हवा में तेज दौड़ने के लिए कुर्सी छोड़ने जैसे शारीरिक डिजाइन पैटर्न हमारे दिमाग को चरम उत्साह पर रखते हैं।


3

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


3

ढेर अतिप्रवाह - जब आप फंस जाते हैं तो त्वरित विशेषज्ञ सहायता

पेशेवर और उत्साही प्रोग्रामर के लिए प्रश्न और उत्तर साइट। यह Q & A साइट्स के स्टैक एक्सचेंज नेटवर्क के हिस्से के रूप में आपके द्वारा बनाया और चलाया गया है। आपकी मदद से, हम प्रोग्रामिंग के बारे में हर प्रश्न के विस्तृत उत्तरों की एक लाइब्रेरी बनाने के लिए एक साथ काम कर रहे हैं ...


+1, लेकिन वास्तव में अब और कम नहीं आंका गया
MAK

4
शायद यह भी कम, या कम से कम overused
Anto

3

मुझे लगता है कि यह नोटपैड / टेक्स्टपैड / सरल टेक्स्ट एडिट प्रोग्राम है। हर किसी के पास एक ऐसा समय होता है जब उन्हें एक त्वरित सुधार की आवश्यकता होती है जिसमें आईडीई खोलने की आवश्यकता नहीं होती है और बस एक त्वरित संपादन की आवश्यकता होती है। और सभी कंप्यूटरों में किसी न किसी तरह का साधारण टेक्स्ट एडिटिंग प्रोग्राम होता है।


2

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

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

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


माना। लेकिन दुर्भाग्य से सरल, अभी तक कुशल, इस तरह के उपकरण अक्सर कम होते हैं।
पीटर मोर्टेंसन

2

एफ 1 कुंजी। - उन कार्यक्रमों के लिए उपयोगी जिन्हें आप नहीं जानते हैं और उन कार्यक्रमों के लिए जिन पर आप काम कर रहे हैं। (यह मानते हुए कि यह एक बड़ा अनुप्रयोग है।)

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


2
दोनों को कम करके आंका गया और कम करके भी आंका गया।
अनाम टाइप

अभी आपके द्वारा उपयोग किए जा रहे एप्लिकेशन के डेवलपर्स द्वारा बहुत कम करके आंका गया; इस तरह की मदद में कोई उपयोगी जानकारी नहीं है।
प्रहार

2

विभिन्न यूनिक्स कोर उपयोगिताओं, लेकिन मुख्य रूप से findऔर कभी-कभी grepया ed। फ़ाइलों के गहरे घोंसले में चीजों को खोजने की क्षमता अमूल्य है, खासकर जब आप अचानक एक कोडबेस विरासत में लेते हैं और इसे ठीक करना पड़ता है। यहां तक ​​कि अगर कहा जाता है कि कोड अच्छी तरह से प्रलेखित है, तो आपको संभवतः शिकार करना होगा, और findइसे मारना होगा।


2

जिज्ञासा

इसे "प्रोग्रामिंग की पहेली" कहें। उस व्यक्ति की तुलना में एक उपकरण क्या है जो इसे पैदा करता है? यह जानने की इच्छा है कि कैसे और क्यों कुछ काम करता है या नहीं करता है, किसी विशिष्ट उपकरण से अधिक किसी के ज्ञान का विस्तार करता है और यह प्रोग्रामिंग से परे सच है।


2
Ctrl + C    
Ctrl + V

दुनिया भर में अनगिनत घंटे बचाया!


1

पूंछ

टेल का उपयोग प्रोग्राम लॉग आउटपुट फाइल को रियल टाइम में मॉनिटर करने के लिए किया जा सकता है। सिस्टम को विकसित करते समय यह बहुत मदद करता है जो दूसरों को लॉग पढ़ने का साधन प्रदान नहीं करता है।

उदाहरण कार्यक्रम हैं;


मैक ओएस एक्स एक यूनिक्स प्रणाली है। इसे अलग से उल्लेख करने की आवश्यकता नहीं है।
20

0

मैंने एक बार एक साथ एक पर्ल कॉल ग्राफ जनरेटर को एक साथ जोड़ा। यह अत्यंत उपयोगी था, लेकिन गैर-प्रक्रियात्मक कोड या फाइल-आउट रूटीन पर बहुत अधिक गिर गया।

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