2013-05-22 5 views
6

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

क्या कोई मानक एनोटेशन है जिसे मैं उपयोग/कर सकता हूं या क्या मुझे अपना खुद लिखना है?

पीएस: मुझे Mylyn/Tasktop से अवगत है जो मेरे लिए ट्रैकिंग करेगा। मेरे उद्देश्यों के लिए, ये उपकरण अभी भी बहुत विघटनकारी हैं क्योंकि वे काफी हद तक बदलते हैं कि लोगों को हर दिन कैसे काम करना है।

उत्तर

3

ओरेकल दृष्टिकोण

जावा API विनिर्देश करने के लिए पर्याप्त दावे को शामिल करना चाहिए सॉफ्टवेयर गुणवत्ता आश्वासन पूरा जावा संगतता किट (JCK) परीक्षण लिखने के लिए सक्षम करें।

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

official JavaDoc guidelines से:

कोड कीड़े कार्यान्वयन में बजाय एपीआई विनिर्देश में कीड़े हैं। कोड बग और उनके कामकाज अक्सर बग रिपोर्ट में अलग से वितरित होते हैं। हालांकि, यदि Javadoc टूल का उपयोग किसी विशेष कार्यान्वयन के लिए दस्तावेज़ जेनरेट करने के लिए किया जा रहा है, तो यह जानकारी को दस्तावेज़ टिप्पणियों में शामिल करने के लिए काफी उपयोगी होगी, जो उचित रूप से नोट के रूप में अलग हो या कस्टम टैग (@bug कहें) ।

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

इसके अलावा, एक्लिप्स जेरा कनेक्ट या इसी तरह के टूल के साथ आप अपने @bug और TODO टिप्पणियां स्वचालित रूप से बग/टास्क टिकट में परिवर्तित हो सकते हैं।

अद्यतन

यदि आप चाहिए, तो आप कस्टम एनोटेशन के एक जोड़े के साथ कर सकता। आपकी जरूरतों, दस्तावेज और टीम में लागू करने के लिए दर्जी। here पर अधिक।

@Target({ ElementType.TYPE }) 
@Retention(RetentionPolicy.CLASS) 
// Unavailable through reflection. 
public @interface classbug {} 
// gives you the @classbug annotation. 

@Target({ ElementType.METHOD }) 
@Retention(RetentionPolicy.CLASS)// Unavailable through reflection. 
public @interface methodbug {} 
// gives you the @methodbug annotation. 
+0

हमारी दुनिया में, दस्तावेज़ीकरण एक संकेत है कि कोड इसके बिना समझने में आसान नहीं है -> रिफैक्टर जब तक आपको दस्तावेज़ों की आवश्यकता नहीं होती है। तो मुझे लगता है कि मैं बग के लिए '// @ बग' का उपयोग कर सकता हूं क्योंकि वे वास्तव में बाहर खड़े होंगे। ओटीओएच, कुछ कोड के लिए एनोटेशन "छड़ी"। लोगों को पता है कि वे महत्वपूर्ण हैं जबकि टिप्पणियां * अनदेखा की जा सकती हैं। तो जब तनाव में कमी आती है, तो एनोटेशन में अस्तित्व का बेहतर मौका होता है। –

2

मुझे व्यक्तिगत रूप से आश्वस्त नहीं है कि हॉट स्पॉट को ट्रैक करने का सही तरीका है। एक के लिए, वे बहुत सारी बग वाले क्षेत्रों में बदसूरत हो जाएंगे (वास्तविक कोड की तुलना में अधिक @Bug लाइनें!) और दूसरे के लिए, वे उन जगहों को अनुपयोगी रूप से पॉप्युलेट कर देंगे, जिन्हें ऑफ-बाय-वन त्रुटि की तरह, कुछ कोड पहले लागू किया गया है।

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

बेहतर, मैं कहूंगा कि कुछ बाहरी विश्लेषण को लागू करना होगा जो बग फिक्स संशोधन से प्रभावित फ़ाइलों को देखता है (कमिट संदेश में [bB][uU][gG]:? *\d+ या कुछ समान है) और इस तरह विश्लेषण चलाता है। आप अपने डेवलपर्स के लिए कोई अतिरिक्त प्रक्रिया जोड़ने के बिना, सभी बग फिक्स का तेज़ी से निरीक्षण कर सकते हैं।

गूगल यह अंत करने के लिए एक दिलचस्प कागज है: वे बचे रहने का बेहतर मौका है, मैं इसी तरह कितनी बार आश्चर्य होता, एनोटेशन किया जा रहा है और अधिक "स्टिकी" टिप्पणियों से के बारे में अपनी टिप्पणी के लिए Bug Prediction at Google


कि अंतर अभ्यास में मूल्यवान होगा। मुझे यह अक्सर पता चलता है कि कोड में बग टिप्पणियां अब जानकारीपूर्ण नहीं हैं, और जितनी चाहें उतनी देर तक चिपक जाती हैं। यदि प्रासंगिक लाइनों में svn|hg|git|whatever blame प्रश्न में बग से जुड़े कामों को प्रकट नहीं करता है, तो संभवतः तब से कई बार इसे फिर से शुरू किया जा सकता है, फिर भी टिप्पणी चारों ओर चिपक जाती है।

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

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