उपकरण समर्थन के साथ .NET में एकल कोडिंग मानक कैसे सुनिश्चित करें


14

शायद, बुनियादी स्थिति सभी से परिचित है। आप अपनी टीम में कुछ कोडिंग मानकों पर सहमत हुए हैं और अब यह सुनिश्चित करने का समय आ गया है कि हर कोई उनका अनुसरण करे।

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

कोडिंग मानकों को सुनिश्चित करने के लिए आपके सर्वोत्तम अभ्यास क्या हैं? आप किन उपकरणों का उपयोग करते हैं - क्या कुछ आवश्यक उपकरण हैं जो प्रत्येक देव को पता होना चाहिए? आप अपने कोड का मानकीकरण अपने विकास साधनों में कैसे एकीकृत करते हैं?

जवाबों:


15

स्टाइलकॉप (अब स्टाइलचेयर फॉर रेस्परर) का उपयोग आमतौर पर सी # कोड बेस के भीतर कोडिंग स्टाइल नियमों को लागू करने के लिए किया जाता है।

यह आपके सीआई बिल्ड में एकीकृत किया जा सकता है और किसी भी उल्लंघन की शुरुआत होने पर बिल्ड विफलताओं का कारण बन सकता है।


कैसे उपयोग करने के बारे में कोई और जानकारी? मैं हर कमिटमेंट से पहले स्टाइल चेकिंग चलाना चाहूंगा। इसलिए मुझे इसके लिए क्ली चाहिए। क्या वहाँ कोई। मुझे कोई प्रासंगिक जानकारी नहीं मिली।
FreeLightman


@R। - अगर कोई केवल StyleCop नियमों को अनुकूलित कर सकता है। ओह, प्रतीक्षा करें ...
Oded

@R। - आप अपने नियम भी लिख सकते हैं।
ऊल

FWIW, गिथब पर रीडमी से: "जबकि पुल अनुरोध स्वीकार किए जाते रहेंगे, यह संभावना नहीं है कि इस परियोजना पर कोई भी बड़ा विकास किया जाएगा। स्टाइलटॉप द्वारा उपयोग किए जाने वाले कस्टम सी # पार्सर को बनाए रखना कठिन और अक्षम है।"
जंग

6

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

मैं स्थिर कोड विश्लेषण के लिए FxCop या Gendarme का उपयोग करने की सलाह देता हूं । दोनों को साथ-साथ इस्तेमाल किया जा सकता है।

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

अंगूठे के नियम हैं:

  • हमेशा शून्य चेतावनी दें। शुरू में चेक के सेट को कम करें यदि आपको करना है, तो हर स्प्रिंट में कुछ नए चेक जोड़ें और उन्हें ठीक करें। सुनिश्चित करें कि आपके द्वारा किया गया प्रत्येक चेक आपके लिए वास्तविक मूल्य है और आपके मानकों के अनुरूप है।

  • यदि आपके पास डोमेन विशिष्ट नियम हैं जिनका आपको पालन करने की आवश्यकता है, तो अपने स्वयं के नियमों को लागू करने से डरो मत।

सिंटैक्स चेक के लिए, यदि आप रेस्पर (जो मैं बहुत ही सलाह देते हैं) का उपयोग कर रहे हैं, तो Resharper के लिए StyleCop या StyleCop का उपयोग करें।


2

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

मैं FxCop को इसके 'समृद्ध नियम पुस्तकालय, महान प्रलेखन, वर्गीकरण, उदाहरण और कई अन्य विशेषताओं के कारण सुझाता हूं ।

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

कोड मेट्रिक्स भी कभी-कभी कोड शैलियों से प्रभावित होता है। आप इस उपकरण के साथ कोड की स्थिरता की निगरानी कर सकते हैं।


2

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


0

ND निर्भरता का उपयोग .NET कोड बेस पर विभिन्न कोडिंग मानकों को लागू करने के लिए किया जा सकता है। इसमें लगभग 200 डिफ़ॉल्ट कोड नियम हैं जिन्हें यहां ब्राउज़ किया जा सकता है । इसके अलावा मौजूदा नियमों को अनुकूलित करना आसान है या अपने स्वयं के नियमों का निर्माण करना है क्योंकि ND निर्भरता के साथ एक नियम सिर्फ C # LINQ क्वेरी है

डिस्क्लेमर: मैं एनडिपेंडेंट के लिए काम करता हूं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.