2009-10-06 11 views
7

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

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

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

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

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

उत्तर

9

यह 'डी' मेंढक में क्या होता है के रूप में खड़ा है डेवलपर नहीं डीबीए। वास्तव में कई डीबीए anathematise TOAD और ऐसे अन्य उपकरण।

आप भाग्य से बाहर हैं। जहां तक ​​मुझे पता है कि पीएल/एसक्यूएल को दोबारा करने के लिए कोई उपकरण नहीं है। मूल समस्या यह है कि एक अवधारणा के रूप में refactoring ओओपी प्रतिमान से आता है, और पीएल/एसक्यूएल ऑब्जेक्ट उन्मुख नहीं है। यह विरासत या बहुरूपता (*) का समर्थन नहीं करता है। इसका मतलब यह है कि शास्त्रीय रिफैक्टरिंग अभ्यास (फॉउलर द्वारा परिभाषित अनुसार) के रूप में परिभाषित कई तकनीकों - अमूर्तता, इंटरफेस इत्यादि - पीएल/एसक्यूएल में कोई एनालॉग नहीं है।

इसका सिद्धांत यह है कि जो लोग अपने वैचारिक टूलबॉक्स के हिस्से के रूप में रिफैक्टरिंग करने के लिए उपयोग किए जाते हैं वे पीएल/एसक्यूएल के साथ प्रोग्रामिंग से बचते हैं। मैं एक बार टीडीडी सूची पर एक गर्म बहस में आया। उपरोक्त यह है कि पीएल/एसक्यूएल के गुणों की आवश्यकता और सराहना करने वाले डेवलपर्स को बेहतर उपकरण समर्थन, the Agile Manifesto के खंड # 1 के साथ-साथ भाषाओं में विकसित करना होगा।

रिफैक्टरिंग के लिए सबसे महत्वपूर्ण टूल स्वचालित इकाई परीक्षण है। हालांकि TOAD (मुझे लगता है) एकीकृत यूनिट परीक्षण नहीं है, ओरेकल एसक्यूएल डेवलपर की अगली रिलीज होगी। स्टैंडअलोन यूनिट टेस्ट टूल्स भी हैं। मैंने हाल ही में उनमें से कुछ को another SO thread में वर्णित किया है।

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

(*) हाँ, मैं जानता हूँ कि ओरेकल प्रकार है, लेकिन वे (क) एसक्यूएल नहीं PL/SQL और (ख) कितने लोगों को बाहर वहाँ वास्तव में उन्हें का उपयोग कर एपीआई का निर्माण कर रहे हैं? व्यापक उत्तर के लिए

+0

+1। जहां आप कहते हैं: "तर्कसंगत पीएल/एसक्यूएल में एम्बेडेड होने के बजाय टेबल के साथ सबसे अधिक बातचीत को जेनरेट टेबल एपीआई द्वारा अंडरक्टेकेन होना चाहिए।" क्या आपके पास कोई लिंक \ संसाधन है जो आप मुझे इस विषय पर इंगित कर सकते हैं? –

+1

अधिकांश चीजों के साथ पीएल/एसक्यूएल, स्टीवन फेयरेस्टीन गेटो मैन है। इस मामले में उनकी प्रस्तुति एसक्यूएल में अपनी लत को तोड़ने की जगह है। इसे एक सम्मेलन पकड़ने की कोशिश करें (वह एक महान प्रस्तुतिकर्ता है) दुर्भाग्यवश इंटरनेट की इसकी प्रतिलिपि प्रतीत नहीं होती है, लेकिन उसकी सर्वोत्तम प्रथाओं की सामग्री इसका उल्लेख करती है: http://www.toadworld.com/Education/StevenFeuersteinsPLSQLExperience/ प्रशिक्षण और प्रतिनिधित्व/टैबिड/155/Default.aspx ... इसके अलावा टून कोप्पलर्स ब्लॉग पीएल/एसक्यूएल एपीआई बनाने के विषय पर बहुत अच्छा है: thehelsinkideclaration.blogspot.com – APC

+0

लिंक के साथ मुझे इतनी जल्दी वापस आने के लिए धन्यवाद - मैं सहमत हूं स्टीवन फेयरेस्टीन के कौशल पेश करने के बारे में - 9/11 को उनकी पहली प्रस्तुति देखी! उम्मीद है कि मुझे काम से बचाया जा सकता है, इसलिए मैं 30 वें दिन यूकेओयूजी में भाग ले सकता हूं और उसी दिन उसे और टॉम दोनों देख सकता हूं। धन्यवाद फिर से –

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