2009-04-24 9 views
10

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

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

साइकल मरम्मत आदमी क्या है बाहर

+0

सीखने के प्रयोजनों के लिए, मैं या तो http://www.refactoring.com/ या मार्टिन फाउलर द्वारा वास्तविक पुस्तक की सिफारिश करता हूं, मुझे आपके द्वारा वर्णित किसी भी उपकरण की जानकारी नहीं है :( – Ryan

+0

क्या आपके पास है जिस प्रकार के उपकरण को आप ढूंढ रहे हैं उसका एक ठोस उदाहरण, जो पहले से ही पाइथन या किसी अन्य प्रोग्रामिंग भाषा के लिए मौजूद है? – bignose

+0

दोनों पिलिंट और क्लोन डिगर कोड में विशिष्ट समस्याओं को इंगित करके कुछ समस्याग्रस्त स्थानों का सुझाव देते हैं, लेकिन वे खुद को रेफैक्टरिंग का सुझाव नहीं देते हैं – Anonymous

उत्तर

2

चेक? साइकिल मरम्मत मैन प्रोजेक्ट पाइथन के लिए ब्राउज़र कार्यक्षमता को पुन: सक्रिय करने का प्रयास है। इसे पुस्तकालय के रूप में पैक किया जाता है जिसे आईडीई और संपादकों में रीफैक्टरिंग क्षमताओं को प्रदान करने के लिए जोड़ा जा सकता है। Emacs और Vi के लिए बाइंडिंग पैकेज के साथ शामिल हैं।

इसे कभी भी इस्तेमाल नहीं किया, लेकिन इसके बारे में पढ़ा है। आप जो खोज रहे हैं उसके जैसा लगता है।

+2

साइकिलरपेयरमैन रस्सी की तरह है, लेकिन पुराने और रस्सी की तुलना में कम विशेषताएं हैं। यह वही नहीं है जो मैं ढूंढ रहा हूं। मैंने पहले बीआरएम का उपयोग किया है। मैंने अपने प्रश्न में इसका उल्लेख नहीं किया क्योंकि रस्सी ने इसे बदल दिया। – Anonymous

0

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

में इसे देखें: http://www.netbeans.org/features/python/

+1

I आपके द्वारा दिए गए संदर्भ में कुछ भी न देखें, जो सुझाव देगा कि यह वही करता है जो प्रश्न पूछता है: प्रोग्राम को सुझाव देना * के रूप में * जो * करने के लिए refactorings, उनके कोड में क्या विशिष्ट बिंदु पर। – bignose

1

मैं नहीं करता है, तो उपकरण के प्रकार, किसी भी विशिष्ट भाषा में मौजूद है, हालांकि अवधारणा मार्टिन फाउलर की पुनर्रचना पुस्तक (web reference) में उल्लेख किया गया था है।

सबसे अच्छा उपकरण जो मुझे पता है कि वर्तमान में मौजूद है चक्रवात जटिलता है। This article पायथन के लिए एक चक्रीय जटिलता काउंटर लागू करता है।

लक्ष्य के लिए अन्य आसान मीट्रिक विधि/कार्य लंबाई, वस्तुओं/वर्गों के गुणों की संख्या और कार्यों के पैरामीटर की संख्या है, अगर मुझे याद है, तो पिलिंट पहले ही उनको गिना जाता है।

+0

चक्रवात जटिलता एक उपकरण नहीं है, यह एक कोड मीट्रिक है। –

2

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

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

पीएस पढ़ें फाउलर "रिफैक्टरिंग" और केरीवस्की "पैटर्न डिजाइन करने के लिए रिफैक्टरिंग" उन किताबों को रीफैक्टरिंग सीखते समय पढ़ना चाहिए। और वे जांचने के लिए सरल तरीका का जिक्र करते हैं कि क्या रिफैक्टरिंग की आवश्यकता है (बदबू आ रही है)।

टीडीडी को यह सुनिश्चित करने के लिए भी अच्छा तरीका है कि आपके रेफ सुरक्षित हैं और अपना कोड तोड़ें नहीं। बेक "उदाहरण के द्वारा टेस्ट-संचालित विकास" शुरू करने के लिए एक अच्छी किताब है। और पायथन के पास टीडीडी के लिए पाययूनीट है।

2

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

इसके अलावा, क्या आपने rope.contrib.codeassist मॉड्यूल की जांच की है? यह स्वचालित रूप से आपके स्रोत कोड के रेफैक्टरिंग का प्रस्ताव और प्रदर्शन करना है।

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