2010-06-01 7 views
12

मुझे लगता है कि मुझे Params::Validate में एक बग का सामना करना पड़ा है, लेकिन मुझे यकीन नहीं है कि मैंने समस्याग्रस्त कोड टुकड़े को सही तरीके से पहचाना है या नहीं। प्रश्न में कोड श्रृंखला को अपवादित करने में विफल रहा (Try::Tiny का उपयोग करके), इसलिए मैंने डीबगिंग शुरू कर दी और पाया कि try ब्लॉक के अंदर उपयोग की जाने वाली कक्षा में विनाशक है। यह विनाशक ऑब्जेक्ट विधियों को कॉल करता है जो Params::Validate का उपयोग करते हैं और Validate.pmsource देख रहे हैं I [email protected] स्थानीयकरण के बिना, यानी वैश्विक [email protected] ओवरराइट हो जाता है।

अब मैं दो विकल्प देखेंगे:

  1. Params::Validate हमेशा [email protected] स्थानीय बनाना चाहिए और इस तरह यह एक बग है कि सूचित किया जाना चाहिए है।
  2. बग प्रश्न में कक्षा में है, क्योंकि इसे किसी विनाशक में Params::Validate का उपयोग नहीं करना चाहिए। Params::Validate अभी भी रह सकता है।

यह कौन सा है? मुझे इस स्थिति को कैसे संभालना चाहिए?

पीएस: मुझे लगता है कि सीपीएएन मॉड्यूल रॉक-ठोस होना चाहिए और न तो खुद को और न ही उनके पर्यावरण को तोड़ना चाहिए, इसलिए सवाल शीर्षक।

उत्तर

11

एक बग रिपोर्ट सबमिट करने के लिए http://search.cpan.org/perldoc?Params::Validate#SUPPORT देखें। आपने किसी समस्या के समाधान और समाधान की खोज करने में बहुत सारी ऊर्जा खर्च की है। अगर किसी और को यह जानने के बिना कि आपने पहले ही सीखा है, तो यह किसी शर्म की बात होगी।

मुझे लगता है कि CPAN मॉड्यूल रॉक-ठोस होना चाहिए और न ही खुद को और न ही अपने वातावरण

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

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

4

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

मुझे लगता है कि सीपीएएन मॉड्यूल रॉक-ठोस होना चाहिए और न तो खुद को और न ही उनके पर्यावरण को तोड़ना चाहिए, इसलिए सवाल शीर्षक।

क्या यह वास्तव में कुछ भी तोड़ दिया? मैं आपको बता सकता हूं कि यह एक बग है, लेकिन मैं आपको यह नहीं बता सकता कि यह उन मामलों का परीक्षण न करने के लिए आपको बहाना देता है जहां आपको स्पष्ट [email protected] की उम्मीद थी और Params::Validate पर कोई धन्यवाद नहीं था।यदि यह एक विकास पर्यावरण "टूटता है", तो यही परीक्षण है।

+0

सटीक होने के लिए, इसका उपयोग हमारे ढांचे के कोड में किया जाता है और मेरा विभाग ढांचे के लिए जिम्मेदार नहीं है। तो, हां, परीक्षण की कमी है, लेकिन मेरे हिस्से या सहयोगी की समस्या नहीं है, जिसने समस्या की खोज की - वह अपने कोड का परीक्षण कर रहा था और सोच रहा था कि उसके अपवाद प्रचार में क्यों विफल रहे। –

संबंधित मुद्दे