2008-09-09 9 views
9

मुझे पता है कि Perl::Criticक्या पर्ल में कोडिंग मानकों को लागू करने के लिए कोई अच्छा स्वचालित ढांचा है?

और मेरे गुगल के परिणामस्वरूप अब तक कई प्रयासों पर कोई परिणाम नहीं हुआ है। ?। :-(

है किसी को भी हमारे कोडिंग मानकों के अनुसार पर्ल :: समालोचक कॉन्फ़िगर और कोड के आधार पर इसे चलाने की सराहना की जाएगी करने के लिए यहाँ कोई सुझाव

किसी भी संसाधन हैं

+0

"ऊपर और चलने" से आपका क्या मतलब है? – svrist

+0

"ऊपर और चलने" से, मेरा मतलब है कि आलोचकों को मेरी जरूरतों के अनुसार कॉन्फ़िगर करना है (मुझे पता है कि पर्ल :: क्रिटिक :: कॉन्फ़िगर है, लेकिन पर्ल कोडर होने के नाते, मैं बहुत आलसी होने की कोशिश कर रहा हूं :)) और इसे चलाएं मेरा कोड बेस मैं सवाल अपडेट करूंगा। – Jagmal

उत्तर

12

प्रोफ़ाइल स्थापित करने के मामले में, आपने perlcritic --profile-proto को आजमाया है? यह आपकी सभी स्थापित नीतियों को उनके सभी विकल्पों के साथ stlout करने के लिए उत्सर्जित करेगा, जिसमें उनके डिफ़ॉल्ट मान भी शामिल हैं, perlcriticrc प्रारूप में। आप जो चाहते हैं उससे मेल खाने के लिए सहेजें और संपादित करें। जब भी आप पर्ल :: आलोचना को अपग्रेड करते हैं, तो आप इस आदेश को दोबारा चलाने के लिए और अपने वर्तमान perlcriticrc के साथ एक अंतर कर सकते हैं ताकि आप मौजूदा नीतियों में कोई भी बदलाव देख सकें और किसी भी नए को उठा सकें।

नियमित रूप से चलने वाले पार्लक्रिटिक के मामले में, अपने शेष परीक्षणों के साथ Test::Perl::Critic परीक्षण सेट करें। यह नए कोड के लिए अच्छा है।

अपने मौजूदा कोड के लिए, Test::Perl::Critic::Progressive के बजाय इसका उपयोग करें। टी :: पी :: सी :: प्रगतिशील पहली बार आप इसे चलाने के लिए सफल होंगे, लेकिन उल्लंघनों की संख्या पर गणना बचाएगा; उसके बाद, टी :: पी :: सी :: प्रगतिशील शिकायत करेगा अगर कोई भी गिनती बढ़ जाती है। एक चीज देखने के लिए जब आप अपने स्रोत नियंत्रण प्रणाली में परिवर्तन वापस लेते हैं। (आप एक का उपयोग कर रहे हैं, है ना?) कहें कि मैं एक बदलाव में जांच करता हूं और परीक्षण चलाता हूं और मेरे परिवर्तन पी :: सी उल्लंघनों की संख्या को कम करते हैं। बाद में, यह पता चला कि मेरा परिवर्तन खराब था, इसलिए मैं पुराने कोड पर वापस आ गया। टी :: पी :: सी :: प्रगतिशील परीक्षण कम गणना के कारण असफल हो जाएगा। इस बिंदु पर करने की सबसे आसान बात यह है कि इतिहास फ़ाइल को हटाएं (डिफ़ॉल्ट स्थान टी/.perlcritic-history) और फिर से चलाएं। इसे आपकी पुरानी गणनाओं को पुन: उत्पन्न करना चाहिए और आप उन्हें फिर से लाने के लिए नई सामग्री लिख सकते हैं।

पर्ल :: आलोचना में बहुत सारी नीतियां हैं जो इसके साथ शिप करती हैं, लेकिन नीतियों के ऐड-ऑन वितरण का एक गुच्छा है। Task::Perl::Critic और Task::Perl::Critic::IncludingOptionalDependencies पर एक नज़र डालें।

आपको अपने सभी कोड को एक एकल perlcriticrc संभाल करने की आवश्यकता नहीं है। उन फ़ाइलों के प्रत्येक सेट के लिए अलग perlcriticrc फ़ाइलों को बनाएं जिन्हें आप परीक्षण करना चाहते हैं और फिर एक अलग परीक्षण जो प्रत्येक को इंगित करता है। उदाहरण के लिए, पी :: सी के लिए लेखक परीक्षणों को http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/ पर देखें। जब लेखक परीक्षण चलाए जाते हैं, तो एक परीक्षण होता है जो पी :: सी के सभी कोडों पर चलता है, दूसरा परीक्षण जो नीतियों पर अतिरिक्त नियम लागू करता है, और तीसरा व्यक्ति जो पी :: सी के परीक्षणों की आलोचना करता है।

मुझे व्यक्तिगत रूप से लगता है कि हर किसी को "क्रूर" गंभीरता स्तर पर चलना चाहिए, लेकिन उन नीतियों को नकारें जिनसे वे सहमत नहीं हैं। पर्ल :: आलोचना पूरी तरह आत्मनिर्भर नहीं है; यहां तक ​​कि पी :: सी डेवलपर्स Conway कहते हैं सब कुछ के साथ सहमत नहीं है। पर्ल :: क्रिटिक पर इस्तेमाल की गई perlcriticrc फ़ाइलों को देखें और "## कोई आलोचक" के उदाहरणों के लिए पर्ल :: आलोचना कोड खोजें; मैं वर्तमान में 143 गिनती हूं।

(हाँ, मैं पर्ल :: समालोचक डेवलपरों में से एक हूँ।)

5

अधिकांश स्टाइलिस्ट मानकों के लिए perltidy है। perlcritic आसानी से .perlcritic file का उपयोग कर कॉन्फ़िगर किया जा सकता है। मैं व्यक्तिगत रूप से इसे स्तर एक पर उपयोग करता हूं, लेकिन मैंने कुछ नीतियों को अक्षम कर दिया है।

4

'स्वचालित ढांचे' के अलावा, मैं अत्यधिक डैमियन कॉनवे के पर्ल बेस्ट प्रैक्टिस की अत्यधिक अनुशंसा करता हूं। मैं जो सुझाव देता हूं उसके 100% से सहमत नहीं हूं, लेकिन अधिकांश समय वह बैंग पर है।

1

एक अच्छा संयोजन ग्रहण के लिए ईपीआईसी के साथ perlcritic है - CTRL-SHIFT-C (या आपका पसंदीदा कॉन्फ़िगर किया गया शॉर्टकट) दबाएं और आपका कोड चेतावनी संकेतकों के साथ चिह्नित किया गया है जहां पर perlcritic को कुछ शिकायत करने के लिए मिला है। चेकइन से पहले इसे चलाने के लिए याद रखने से बहुत अच्छा है। और perlcritic के साथ सामान्य के रूप में, यह आपके .perlcriticrc उठाएगा ताकि आप नियमों को अनुकूलित कर सकें। हम संस्करण नियंत्रण में हमारा .perlcriticrc रखते हैं ताकि सभी को समान मानकों को प्राप्त किया जा सके।

0

कॉस्मेटिक सर्वोत्तम प्रथाओं के अलावा, मैं हमेशा यह उपयोगी जाँच करने के लिए मेरी यूनिट टेस्ट स्वीट पर Devel :: प्रो चलाने के लिए लगता है परीक्षण कवरेज।

2

उपरोक्त पोस्ट Devel::Prof का उल्लेख शायद वास्तव में Devel::Cover (परीक्षण सूट का कोड कवरेज प्राप्त करने के लिए) है।

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