सबसे बड़ी गलती जो आपने कभी की है [बंद]


33

सर्वर फाल्ट पर मैंने जो प्रश्न पढ़ा है, उसके समान, आपने आईटी से संबंधित स्थिति में सबसे बड़ी गलती क्या है। दोस्तों से कुछ उदाहरण:

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

और मेरे लिए, मैंने एक घटना के लिए एक फॉर्म तैयार किया जो एक विशिष्ट समय सीमा के दौरान आयोजित किया जाना था। प्रतिभागी जीतने के मौके के लिए फॉर्म भरेंगे और हम डेटाबेस से आयोजकों को एक सीएसवी भेजेंगे। मैं डेटाबेस में गया, और केवल 1 ENTRY, MINE पाया। जांच करने पर, ऐसा प्रतीत होता है जैसे मैं एक ऑटो वेतन वृद्धि कुंजी भूल गया हूं, और सर्वर सेटअप के कारण खोए हुए डेटा को पुनर्प्राप्त करने का कोई तरीका नहीं था।

मुझे पता है कि यह सवाल स्टैक ओवरफ्लो पर लोगों के समान है, लेकिन मैंने पाया कि वास्तविक कहानियों के बजाय सामान्य उत्तर प्राप्त हुए थे :)

अब तक की सबसे बड़ी कोडिंग त्रुटि / गलती क्या है ...


6
गुनहगार सवाल!
जूनियर एम

क्यों ओ इस सवाल को बंद कर दिया गया था? मुझे अपनी बड़ी गलती को जोड़ने की आवश्यकता महसूस होती है: मैंने प्रोडक्शन में तैनात होने के बाद तीन घंटे (यानी 500 HTTP स्टेटस) के लिए एक LIVE वेबसाइट को नीचे ले लिया, विशेष रूप से DEPLOY टू प्रोडक्शन को नहीं बताया गया। सबसे बुरा, मैंने गलती को छिपाने की कोशिश की, लेकिन ग्राहक ने देखा और बहुत खुश नहीं लग रहा था।
मारिया इनेस पर्निसारी

मेरे लिए आसान है। निवेश की निकासी का भुगतान किया, लेकिन दो बार सेंट में परिवर्तित किया। 30k के बजाय 3 मिल का भुगतान किया। रनर अप - खराब एसक्यूएल जहां क्लॉज। 4k लोगों को सूचित किया कि उनके $ 1 - $ 10 निवेश रात में $ 1800 से बढ़ गए। जाहिर है कि इनमें से कुछ ग्राहक गए और पैसे खर्च किए। आर्थिक रूप से बहुत जल्दी ठीक हो गया। टूटा हुआ आत्मविश्वास और अपराधबोध वास्तव में कभी दूर नहीं हुआ। कैसे उबरें: जिम्मेदारी लें अपनी गलती मानें। कुछ और दोष न भी दें, भले ही योगदान कारक हों। इसे ठीक करने के लिए समझ और टीम के प्रयास के साथ मुलाकात की गई। क्लाइंट ने ईमानदारी की सराहना की।
रियासुरिया

जवाबों:


54

SQL UPDATE को एक 'खराब' के साथ जारी करना जहां हर चीज से मेल खाता हो।

सबक सीखा: हमेशा यह देखने के लिए एक सिलेक्ट जारी करें कि क्या बदला जाएगा।


15
या ऑटोकॉमिट को गलत पर सेट करें ताकि आप देख सकें कि कितनी पंक्तियाँ प्रभावित होंगी।
येवगेनी ब्रिकमैन

2
ओह, मैंने ऐसा किया है। बहुत बुरा ...
ग्लेनट्रॉन

4
हाहा मुझे लगता है कि हर किसी ने अपनी बेल्ट के नीचे कुछ एसक्यूएल के साथ कुछ समय में ऐसा किया है, मुझे शामिल किया गया है
billy.bob

3
यही कारण है कि अपडेट पहले देव पर किया जाना चाहिए! कोई भी गर्म सीधे ठेस नहीं पहुंचाता। और ऑडिट टेबल के लिए बहुत आभारी रहें यदि आपके पास ऐसा करते समय आप हैं।
HLGEM

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

36

टाइपो की

इस चंक पर तीन ठोस दिन बिताए:

if($func == "remove")
{
    $p->comments[$index]->removed = true;
    $p->save();
}
else if($func == "approve");
{
    $p->comments[$index]->approved = true;
    $p->comments[$index]->removed = false;
    $p->save();
}

त्रुटि देखें? यह के अंत में अर्धविराम है else if। मैं यह पता नहीं लगा सका कि मेरी हटाई गई टिप्पणी क्यों नहीं हटाई गई। डेटाबेस में खोदे गए, Ajax अनुरोध मैं का उपयोग कर, पोस्ट चर था, था error_logकी और alerts हर जगह । विधि को फिर से लिखना समाप्त किया और यह काम किया। फिर मैंने मूल संस्करण के साथ एक अंतर किया और अर्धविराम को देखा।

टाइपो किसी भाषा को ट्रैक करने के लिए सबसे कठिन हैं जो किसी चीज द्वारा संकलित या पूर्व-जाँच नहीं की जाती है। यहां तक ​​कि इस तरह की त्रुटियां संकलित भाषा पर कठिन होंगी। एक ==को बदलें =और अचानक आपके पास असाइनमेंट है a if


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

24
क्या शीर्षक (अभीष्ट) वाक्य है? : ओ
अगोस

3
@ रॉग कोडर: सिंगल और डबल कोट्स के बीच का अंतर गायब है। यह मस्तिष्क के चक्रों के बारे में चिंता करने के लिए समय का दुरुपयोग है। परीक्षण को phpbench.com
Joeri Sebrechts

2
@ back2dos: इर्रर ... सही है। तो आप haXe के पक्ष में उन सभी उल्लिखित भाषाओं को छोड़ने की सलाह देते हैं? 2005 में पहली बार कुछ दिखाई दिया? उसी के साथ आगे बढ़ो।
जोश के

10
वन ट्रू ब्रेस स्टाइल के पक्ष में तर्क के लिए धन्यवाद। +1
eswald

28

यह सोचते हुए कि प्रोग्रामिंग ज्यादातर खरोंच से शांत नए सामान बनाने के बारे में है।


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

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

23

मेरी सबसे बड़ी गलती यह सोचना था कि प्रोग्रामिंग आसान पैसा है ...


27
यदि आप पैसे के लिए प्रोग्रामिंग में शामिल हो गए हैं, तो आपको एक नया कैरियर प्राप्त करना चाहिए। ऐसा नहीं है कि पैसा नहीं है, यह है, लेकिन आपको प्रोग्रामिंग के लिए जुनूनी प्यार की आवश्यकता है जो सच्चे डेवलपर्स के पास है, या आप बहुत जल्दी बाहर जलाएंगे
जॉन्क

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

4
@ जॉन्क वही अधिकांश व्यवसायों के लिए जाएगा। मैं ईमानदारी से उन लोगों को नहीं समझता, जो "प्रोग्रामिंग सीखने" के लिए विश्वविद्यालय जाते हैं। मैंने तब शुरुआत की जब मैं K & R के साथ 14 साल का था। मैं "इलेक्ट्रॉनिक्स सीखने" के लिए विश्वविद्यालय गया था - लेकिन लगता है कि क्या, मैं वैसे भी एक प्रोग्रामर के रूप में समाप्त हुआ। बहुत अच्छे संगीतकारों ने खुद को सिखाया। बहुत अच्छे प्रोग्रामर ने खुद को सिखाया। यही ज़िन्दगी है।
पीपी।

अमीन भाई, आमीन
मिस्टर्स

23

गलती से उस डेटाबेस को हटा दिया गया जो हमारे सभी ग्राहक जानकारी, ऑर्डर इतिहास और चालान को कंपनी के शुरू होने (कई वर्षों के लायक) पर संग्रहीत करता है।

निष्पक्ष होने के लिए, मेरे नियोक्ता को हालांकि कुछ दोषों को साझा करना होगा। उनके पास मैक एसई पर संग्रहीत उस डेटाबेस की एकमात्र प्रति थी (हाँ यह बहुत समय पहले था) जो उन्होंने मुझे (एक नया कर्मचारी, कॉलेज से पहली नौकरी के लिए दिया) मेरे कार्य केंद्र के रूप में दिया था और कभी भी बैकअप बनाने पर विचार नहीं किया था।

इसलिए, यह सोचकर कि यह DB की एक प्रति है, मैं इसे कचरे के डिब्बे तक खींच सकता हूँ। फ़ाइल के आकार के कारण इसे तुरंत हटा दिया गया। हमें अंततः डेटा पुनर्स्थापना सेवा के लिए एक अस्पष्ट राशि का भुगतान करने के बाद वापस मिल गया, लेकिन लगभग 5 दिनों के लिए हम किसी भी आदेश को पूरा या बिल नहीं कर सकते थे, और किसी भी ग्राहक के बारे में जानकारी तक पहुंचने का कोई तरीका नहीं था। यह बहुत ज्यादा (3 व्यक्ति कंपनी) एक ठहराव के लिए लाया।


15
आउच। स्वयं पर ध्यान दें: हमेशा एक बैकअप लें: भले ही पहले से ही बैकअप हो।
क्रामि ने मोनिका

1
@ कर्मी: सर्वश्रेष्ठ सलाह, हाथ नीचे।
क्रिस

@Kramii - खुशी है कि मैंने अपने करियर की शुरुआत में वह सबक सीखा।
जॉन एफएक्स

क्या आपको निकाल नहीं दिया गया?
मतीन उल्हाक

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

15

जब phpmyadmin ने पूछा:

"आप एक पूर्ण डेटाबेस को DESTROY करने वाले हैं? क्या आप वास्तव में DATPASE XXX को देखना चाहते हैं?"

मैंने एंटर मारा।


26
जब रक्षात्मक प्रोग्रामिंग ने बड़े मुद्दों को रोकने में मदद की होगी, तो महान उदाहरण। यदि आप कुछ ऐसा कर रहे हैं, जहां नतीजे गंभीर हो सकते हैं, जैसे शायद टेबल / डेटाबेस को छोड़ने के लिए, उपयोगकर्ता की प्रतिक्रिया को "नहीं" पर डिफ़ॉल्ट रूप से दें ताकि वे कार्रवाई के लिए सहमत हों।
ह्यूगो

6
@ ह्यूगो: +1। मेरे पास uni (पूर्व यूनिक्स / डेटाबेस sysadmin) में एक प्रोफेसर था जो कहता था कि "जब भी आप कुछ भी गंभीर कर रहे हों, तो हमेशा अपने हाथों को कीबोर्ड से हटाएं और उन पर लगभग दस सेकंड के लिए बैठें और सोचें कि क्या होने वाला है।"
बॉबी टेबल्स

1
@ ह्यूगो: मैं आगे जाता हूं - "आप एक पूर्ण डेटाबेस को DESTROY करने जा रहे हैं! यदि आप वास्तव में DATP DASEABASE xxx चाहते हैं, तो DELETE लिखें:"
Loren Pechtel

3
@ ह्यूगो @ लॉरेन पीचटेल - "आप एक पूर्ण डेटाबेस को DESTROY करने वाले हैं! आपके लॉगिन की एक वेब खोज ने 'lol' की कई घटनाओं को बदल दिया है, और इसलिए इस कार्रवाई से इनकार किया जा रहा है। कृपया अपने व्यवस्थापक को देखें या संवाद करना सीखें।"
detly

15

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

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

यह हानिरहित दिखने वाले तरीकों में से एक है जो मैंने जोड़ा था एक दूरस्थ सेवा कॉल थी जो कम से कम एक डीबी हिट हुई थी। प्रत्येक तुलनात्मक कॉल में। तो एक पृष्ठ पर जहां 2,000+ आइटम सॉर्ट किए जा रहे थे, मैं ~ 6000 (nlogn) DB हिट बना रहा था। आउच।


क्या आपके कोड में DB स्पष्ट था, या यह आपके द्वारा कॉल की जा रही किसी विधि / संपत्ति में हुआ था?
dbkk

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

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

15

मैंने यह किया है:

rm -rf /bin

(वास्तव में, मैंने ऐसा बिल्कुल नहीं किया । यह गूंगा और अक्षम्य होगा। मैंने इसे अधिक सूक्ष्म, गोल-गोल तरीके से किया, जिसके परिणामस्वरूप अनिवार्य रूप से कमांड निष्पादित हो गई। "

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

कुछ अच्छा अनुभव आया। मैंने सीखा कि कैसे निर्देशिकाओं को सूचीबद्ध करने के लिए / बिन कमांड का उपयोग करने के लिए बिना।

echo *

+1 ने
डीएस

11

ग्राहक अपने पूरे यूजरबेस के लिए एक मेलआउट चाहता है जो मूल रूप से किसी घटना के बारे में एक व्यक्तिगत ईमेल भेजेगा और जब वे ईमेल में एक लिंक पर क्लिक करेंगे तो स्वचालित रूप से उनके आधे डेटा से भरे एक फॉर्म में उन्हें लॉग इन करेंगे।

मैं कोड लिखता हूं, कोड का परीक्षण करता हूं, यह ठीक काम करता है, लिंक काम करते हैं, यह बहुत चिकनी है। जाँच की और डबल सब कुछ जाँचने के बाद, मैं लाइव सूची पर स्विच करता हूं और हम चले जाते हैं।

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

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

फोन को ग्राहकों के कार्यालय में बजने में देर नहीं लगी ...

यह अब तक की एकमात्र गलती थी जिसने मुझे अपना इस्तीफा देने की पेशकश की।


वास्तविक डेटा के लिए +1 नमूना डेटा की तुलना में काफी बड़ा है :-(
नग्न41

IMO यह सबसे बुरे लोगों में से एक है> _ <
sevenseacat

7

मैंने एक बार एक फिल्टर के बिना एक क्रॉस जॉइन का इस्तेमाल किया था। डेटा के एक अंश के साथ परीक्षण डेटाबेस पर ठीक काम किया। जब यह तैनात किया गया था, तो यह एक औसत क्वेरी में ~ 60M पंक्तियों के साथ समाप्त हो गया।


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

7

मैंने 100 000 $ लेजर स्कैनर को क्रैश कर दिया।

नियंत्रक पूर्णांक के रूप में पदों को संग्रहीत कर रहा था इसलिए मैंने इंच में वास्तविक स्थिति प्राप्त करने के लिए 10000 से सब कुछ विभाजित किया।

जब अंतिम अंक 0 था, तो इसे छोड़ दिया गया था, इसलिए Z अक्ष 10 गुना दूर था।

हिलारिटी का विकास हुआ


6

"हमें एक पुनर्लेखन करने की आवश्यकता है।"

दूसरी तरफ, यह पांच साल पुराना वीबी 6 ऐप था।


5

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


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

क्या उसने गड़बड़ की थी, आपको दोषी ठहराया जाएगा और निकाल दिया जाएगा (या कम से कम दुखी समय होगा जब तक आप अपमान में नहीं छोड़ते)।
jwenting

4

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

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

अच्छा पक्ष यह था कि बॉस आखिरकार एक विकास बॉक्स के लिए उछला।


3

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

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

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

/admin/displayItems/icon_update.asp?image=eastereggs.jpg&itemID=3174


7
ऐसा लगता है कि कितने लोग सीखते हैं जब GET का उपयोग करना उचित होता है और जब POST का उपयोग करना उचित होता है
Oli

सहमत, मैं इंट्रानेट के पुनर्विकास पर काम शुरू करने वाला था और इसने आवश्यकताओं के शीर्ष पर GET और POST का उचित उपयोग किया। ASP MVC भी ऐसा करने में आसान और सहज बनाता है।
चाओ

1
वास्तव में आपकी गलती नहीं है , लेकिन फिर भी एक अच्छी कहानी है :-)
डीन हार्डिंग

3

अब तक मेरी एकमात्र पेट-घुमा, हृदय-दर-वृद्धि, अचानक-गर्म-और-खुजली वाली गलती एक WHERE क्लॉज के बिना UPDATE क्वेरी चल रही थी। सौभाग्य से पिछले 15 मिनट से बैकअप था और डेटा बहुत बार नहीं बदला जिसका मतलब था कि मैं बिना किसी को जाने 10 मिनट के भीतर डेटा को पूरी तरह से पुनर्स्थापित करने में सक्षम था।

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


1
क्या आप लोग DB गलतियों को कभी रोलबैक नहीं कहते हैं?
जे क्यू कतार

@Xepoch, केवल तभी मदद करता है जब आपने लेनदेन शुरू किया हो
CaffGeek

1
@ क्या, क्या हमें आम तौर पर यह नहीं मानना ​​चाहिए कि सभी डेटा कॉलों का लेन-देन होना चाहिए?
जे क्यू कतार

2
@Xepoch, कभी नहीं मान।
कैफीक गीक

1
@Char, लेन-देन के भीतर सभी DB इंटरैक्शन को बनाए रखने के लिए मेरी व्यक्तिगत प्राथमिकता है। जो नहीं करते हैं, वे जोखिम उठाते हैं या उनके पास व्यावसायिक मामले हैं जो परवाह नहीं करते हैं। विनिर्देश धारणा और MANDATEs यह है कि हम लेन-देन परियोजनाओं को शुरू करेंगे और लेन-देन DB प्रबंधन के साथ बनाए रखेंगे।
Jé Queue

3

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

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

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


8
धिक्कार है ... मैं रोबोट पर काम करना चाहता हूं ! सभी पूरे दिन मैं घटिया वेब साइटों का निर्माण करता हूं।
डैन रे

2

बिल्ड कंप्यूटर के बजाय हमारे कंप्यूटर पर हमारे सॉफ़्टवेयर का एक संस्करण बनाया गया क्योंकि यह तेज था (लगभग 4 घंटे तेज था, जिसका मतलब था कि यह अगले दिन के बजाय क्यूए में जा सकता है) और प्रकाशक इसे asap चाहते थे।

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


2

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


मेरे पास एक सहकर्मी था। केवल उसने सोचा कि वह अपनी स्थानीय प्रति गिरा रहा है न कि ठेस। हम सब काम कर रहे थे तब उसे 'ओएच एसएच ** !!!!' जाना सुना वह एक मजेदार दोपहर थी।
तानना

2

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


मेरी गलती नहीं है, लेकिन संबंधित। जिस कंपनी के लिए मैंने काम किया था, उनके एक वेब्सवर्कर्स ने समझौता किया था, जो संस्करण नियंत्रण सर्वर (DMZ? Whazda?) को एक घुसपैठिया जड़ तक पहुँचा देता था, जहाँ उसने तुरंत "rm -r /"
jwentent

2

जावा में स्ट्रिंग तुलना के ==बजाय का उपयोग करनाequals


13
यही सबसे बड़ी गलती है जो आपने कभी की है?
क्रिस

यह जावा में एक समस्या की अधिक है, जहां ==एक संदर्भ तुलना है। C # में, ==स्ट्रिंग्स पर एक मूल्य तुलना करता है, जैसा .Equals() कि कहा गया है, कुछ मतभेद हैं, जॉन स्कीट का उत्तर यहां देखें: stackoverflow.com/questions/3678792/-
टिम गुडमैन

2
@ समय: कि अभी भी इसका जवाब नहीं है कि यह "आपकी अब तक की सबसे बड़ी गलती थी" ... कम से कम परिणामों के बारे में कुछ और संदर्भ अच्छा होगा ...
डीन हार्डिंग

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

@ डीन: यह मेरे द्वारा की गई सबसे बड़ी गलती नहीं थी ... मैं यहाँ पर सी # बनाम जावा के साथ व्यवहार में अंतर स्पष्ट कर रहा था
टिम गुडमैन

1

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


2
मैं आपसे आंशिक रूप से सहमत हूं, सिर्फ इसलिए कि किसी को अधिक अनुभव है (वर्षों में) इसका मतलब यह नहीं है कि वह एक बेहतर प्रोग्रामर है। वहाँ बहुत सारे प्रोग्रामर हैं, जो अपने रेज्यूमे पर 'एक्सएक्सएक्स ईयर एक्सपीरियंस' लिख सकते हैं लेकिन उनके पास कोई सुराग नहीं है कि वे क्या कर रहे हैं।
बॉबी

वे जिस तरह से यहाँ सूचीबद्ध लोगों की तरह एक बेवकूफ गलती उठाया है की संभावना है, कि एक और अधिक सावधान डेवलपर हालांकि कर देगा
johnc

स्पष्ट होने के लिए, गलती उस रवैये की नहीं थी। गलती यह कह रही थी कि आपके पास यह रवैया है।
डैन रे

मैं वर्षों से कई लोगों से यह कहना चाहता हूं।
रियासुरिया

1

इसी महीने एक सहयोगी के साथ ऐसा हुआ।

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

लागत: एसएमएस ट्रैफ़िक का एक महीने का वेतन।


वह सस्ता है! :)
२ing पर jwenting

1

एक प्रबंधक के अनुरोध पर, मैंने /etc/sudoersएक मशीन से दूसरी मशीन में कॉपी की (भले ही यह समस्या को हाथ से तय नहीं किया है, लेकिन यह बिंदु के बगल में है)। दुर्भाग्य से, मैंने sudoकॉपी की गई फ़ाइल को जगह में स्थानांतरित किया , यह ध्यान दिए बिना कि उसके मालिक और अनुमतियां पूरी तरह से गलत थीं। उस समय, किसी के पास कोई रूट खोल नहीं था, कोई भी नहीं कर सकता था sudo, और कोई भी रूट के रूप में लॉग इन नहीं कर सकता था क्योंकि इसका शेल सेट हो गया था /bin/false। और मशीन एक दूरस्थ डेटा वेयरहाउस में थी ...


1

मैं निर्देशिका में प्रत्येक फ़ाइल के लिए मेटाडेटा फ़ाइलें बनाना चाहता था (यानी हर फ़ाइल के लिए somedir/foo.bin, मैं एक फ़ाइल बनाना चाहूँगा somedir/foo.bin.meta)। किसी मूर्खतापूर्ण कारण से मैंने पायथन के माध्यम से एक फ़ाइल स्ट्रीम खोलने और बंद करने के द्वारा फाइलें बनाने का फैसला किया:

for fn in os.listdir(path):
    open(os.path.join(path, fn), 'w').close()

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

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


1

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

Aaaaanyway, मैंने सॉफ्टवेयर में एक (मामूली) बदलाव किया। मैं इसे बदलने के लिए एक सेवा विंडो का इंतजार कर सकता था, लेकिन मुझे लगा कि "अरे, सेवा को फिर से शुरू करने में एक मिनट लगने वाला है, क्यों परेशान करता है। फॉर्च्यून बोल्ड का एहसान करता है"। तो मैंने इसे फिर से शुरू किया, दुर्भाग्य से धागा बंद था इसलिए मैं इसे प्रतिस्थापित नहीं कर सका। पैनिक करने के लिए मैं जल्दी से मशीन को रिबूट करने का फैसला करता हूं (मैं रिमोट कर रहा था)। दुर्भाग्य से मेरी घबराहट में मैं इसके बजाय "अपडेट अपडेट और शटडाउन" पर क्लिक करता हूं: पी

कहने की ज़रूरत नहीं है कि स्वीडन में इतना ग्राहक समर्थन नहीं था कि अगले आधे घंटे के लिए हम इसे फिर से शुरू करने में कामयाब रहे।

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


1

Argh, 11pm, प्रयोगशाला बंद, त्वरित, त्वरित ...

$ enscript -o midterm.hs midterm.hs
$ submit midterm.hs
Error: submission is empty

भगवान नहीं! एफएफएस। मेरा मतलब था कि PS आप ****!


भाषा शैली के लिए क्षमायाचना, यह प्रामाणिकता के लिए आवश्यक है।
परिक्रमा

0

जेएस कोडिंग करते समय कुछ समय पहले, मैं "1" (एक) और "एल" "छोटे एल" के बीच अंतर करने में सक्षम नहीं था। जब मैं यह उत्तर लिख रहा था तब भी दोनों संपादक में लगभग एक जैसे दिखते हैं!


क्यों गिरा वोट?
गोपी

0

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

page.vis? body = <body> <p> ओह डियर </ p> </ body>

और यह ठीक वैसा ही होगा जैसा दिखता है।

सौभाग्य से मेरे पास कोई उपयोगकर्ता (विलाप) नहीं है, इसलिए मुझे लगता है कि यह बहुत अधिक सुरक्षा जोखिम नहीं था।


0

निश्चित रूप से TSQL दुर्घटना - एक संपादक विंडो में बहुत से TSQL बयान। थोड़ा थक गया था, और लोग मुझे बाएं और दाएं बाधित कर रहे थे, और मैंने एक आदेश जारी किया, जिसने 47,000 रिकॉर्ड पते, शहर, राज्य और ज़िप को अपडेट किया - उफ़। हालांकि यह लगभग 25 मिनट में तय हो गया था।

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