2010-02-23 13 views
5

हमारी प्रणाली एक मंच उन्नयन है कि जावा 6.जावा 1.4 से जावा 6 तक: विरासत कोड अपडेट करने के लिए कोई स्वचालित उपकरण?

आदर्श रूप में साथ जावा 1.4 के प्रतिस्थापन शामिल के माध्यम से जाना होगा, हम जहाँ भी संभव कोड को जेनरिक और enumerations लागू करने के लिए एक स्वचालित उपकरण का उपयोग करना चाहते हैं और फिर, स्पष्ट रूप से होता है, हम परिवर्तनों की समीक्षा करेंगे। क्या कोई ऐसा उपकरण है जिसके लिए आप इसकी सिफारिश करेंगे?

उत्तर

5

इंटेलिजे आईडीईए आपको विरासत संग्रह जेनरेट करने के लिए विशेष टूल प्रदान करता है।

+0

हाँ, धन्यवाद। मुझे लगता है कि मैं जो खोज रहा था उसके सबसे नज़दीक होगा। –

6

कोड जहां भी संभव हो

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

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

+0

इच्छा है कि मैं दो बार ऊपर उठ सकता हूं। इन मामलों में ऑटो-जेनरेट कोड AWFUL है। –

+0

enums के बारे में असहमत होना मुश्किल है। लेकिन जेनेरिक के बारे में हिस्सा और ऑटो-जनरेटेड कोड के बारे में टिप्पणी मुझे लगता है कि आप लोग केवल ग्रहण का उपयोग करते हैं। – Roman

+1

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

1

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

स्पष्ट रूप से कास्टिंग आदर्श नहीं है लेकिन इसका मतलब है कि आप एपीआई को जल्दी ही अपडेट कर सकते हैं (यह मानते हुए कि यह एक एपीआई-आधारित सिस्टम है) और उसके बाद आंतरिक "बाद में" सही करें।

1

मुझे विश्वास है यह जरूरी एक अच्छा विचार है नहीं कर रहा हूँ करने के लिए "generifying" एक पुराने codebase:

  • यह प्रदर्शन में सुधार नहीं होगा, क्योंकि एक ही कक्षा डाले हो (परदे के पीछे) जब आप सामान्य प्रकार के कच्चे प्रकार के साथ कच्चे प्रकार का उपयोग करते समय जेनेरिक का उपयोग करें।

  • यह बग को ठीक करने की संभावना नहीं है। गलत प्रकार के कास्टिंग करके होने वाली महत्वपूर्ण बग्स शायद पहले से ही पाई गई हैं और तय की गई हैं।

तो एकमात्र चीज यह है कि कोड को थोड़ा अधिक पठनीय बनाना है। और नकारात्मक पक्ष में आपके पास परिवर्तन और परीक्षण करने का प्रयास है, और जोखिम जो आप नई बग पेश कर सकते हैं।

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