2009-08-31 18 views
26

क्या कोई ऐसा उपकरण है जो हजारों चेतावनी और त्रुटियों को मैन्युअल रूप से ठीक करने के बजाय स्टाइलकॉप और FxCop नियमों को स्वचालित रूप से ठीक कर सकता है?क्या कोई स्टाइलकॉप/FxCop ऑटो ट्रैकिंग उपकरण है?

एक होना चाहिए, यह एक अच्छा व्यापार अवसर है!

उत्तर

2

स्टाइलकॉप शायद (कुछ उल्लंघनों के लिए) - बहुत सारे कोड स्वरूपक हैं।

FxCop नहीं (जिसे मैं जानता हूं)।

ReSharper अपने कोड क्लीनअप और रिफैक्टरिंग के साथ मदद कर सकता है, लेकिन यह सभी FxCop उल्लंघनों को जादुई रूप से ठीक करने वाला नहीं है (हालांकि यह इंगित करेगा और कुछ मुद्दों को ठीक करने में मदद करेगा)।

FxCop मुद्दे डिज़ाइन पैटर्न के समान हैं; उन्हें आम तौर पर समाधान लागू करने के उचित तरीके को निर्धारित करने के लिए विचार की आवश्यकता होती है। कुछ मामलों में उल्लंघन लागू नहीं हो सकता है, और दबाया जा सकता है। आप अपनी विशेष जरूरतों के लिए FxCop नियमों को भी ट्यून कर सकते हैं; मानक नियम वितरित ढांचे और पुस्तकालयों के लिए थे, और सार्वभौमिक नहीं हैं। उनमें से अधिकांश बहुत अच्छे सुझाव हैं, हालांकि।

+4

चूंकि आपने पहले ही रेसर्पर का उल्लेख किया है: StyleCopForReSharper (http://www.codeplex.com/StyleCopForReSharper/) स्टाइलकॉप नियमों के लिए ऑटो-फ़िक्स प्रदान करता है। –

10

StyleFix स्टाइलकॉप द्वारा पाए गए कई उल्लंघनों को ठीक करेगा।
GhostDoc आपके तरीकों पर टिप्पणियां जोड़ना आसान बनाता है।

लेटले मैं Telerik JustCode का उपयोग कर रहा हूं। यह वास्तव में स्टाइल मुद्दों को रोकता है।

2

StyleCopFixer वह टूल है जो स्वचालित रूप से विजुअल स्टूडियो आईडीई के भीतर स्टाइलकॉप अपवादों को ठीक करता है।

5

FxCop अभी तक अपनी स्वयं की फ़िक्सिंग सुविधाओं के साथ नहीं आया है। Project Roslyn (वीएस 11 के बाद कहीं भी जारी किया जाने वाला लक्ष्य) स्थिर विश्लेषण नियमों के लिए एक नया इंजन प्रदान करेगा और एक सुविधा के रूप में निर्मित फिक्सिंग के साथ आता है।

ऐसे कई टूल हैं जो अपने स्वयं के फ़िक्सिंग नियम प्रदान करते हैं। कुछ पहले उल्लेख किया गया है:

ये कभी कभी की तुलना में अधिक या अन्य चीजों को फ़्लैग FxCop या StyleCop होगा। और यहां विरोधाभासी नियमों का खतरा है। यदि आप FxCop जैसे टूल हैं तो जो पहले से ही वहां मौजूद है।

और कुछ खुली स्रोत परियोजनाएं हैं जो सबसे आम FxCop और StyleCop चेतावनियों के लिए फ़िक्स प्रदान करने का प्रयास करती हैं। मैंने स्टाइलकॉप के लिए उन लोगों की कोशिश नहीं की है, लेकिन अधिकांश FxCop ऑटो फ़िक्सिंग टूल वास्तव में अच्छी तरह से काम नहीं करते हैं, क्योंकि कुछ FxCop नियम हैं जो ठीक करने के लिए वास्तव में आसान हैं।

इन उपकरणों में से कोई भी MSOCAF या ओपन सोर्स प्रोजेक्ट (उदाहरण के लिए FxCopContrib) या अन्य माइक्रोसॉफ्ट परियोजनाओं (नियम शामिल के रूप में इस तरह के रूप में इस तरह, आप कस्टम नियम (या नियम आप अन्य स्रोतों से डाउनलोड किया है ठीक करने के लिए सक्षम हो जाएगा Open Source Web Service Software Factory CTP में)।

और, विशेष रूप से FxCop नियमों के साथ मैं देखता हूं कि चीज को ध्वजांकित करने के दौरान, जो हल करने के लिए बहुत आसान लगता है, वास्तव में एक बहुत बड़ी समस्या को इंगित करता है।

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

यह स्टाइलकॉप पर बहुत कम लागू होता है, क्योंकि कोडिंग शैली अक्सर वास्तविक अंतर्निहित कार्यान्वयन या डिज़ाइन से संबंधित नहीं होती है। और ऐसा लगता है कि StylecopFixer एक शानदार ऐड-ऑन है यदि आप Resharper integration का उपयोग नहीं कर रहे हैं जो अब डिफ़ॉल्ट रूप से StyleCop के साथ जहाजों का उपयोग नहीं कर रहा है।

+0

फ़ाइल पर राइटक्लिक करें और रिशेर्पर क्लीनअप कोड का चयन करें। इसमें बहुत सारी सेटिंग्स हैं। और एक साथ कई फाइलों को autocleans। –

15

नहीं, निराशाजनक। यही कारण है कि स्टाइल कॉप काउंटर-उत्पादक है। लगातार स्वरूपण अच्छा लग रहा है, लेकिन इसके लिए थोड़ा उत्पादकता लाभ है (जो वास्तव में पढ़ने के लिए कठिन कोड बनाता है लंबाई और indirection) है। सही दूरी हाथ से लाइनों को समायोजित करने के घंटों खर्च करने लायक नहीं है।

यदि लगातार स्वरूपण प्राप्त करने के लिए स्वचालित उपकरण थे, तो मैं इसे बाद में चेक-इन कर सकता हूं। लेकिन स्टाइल कॉप उन दुखद लोगों द्वारा बनाई गई है जो उपयोगकर्ता को हाथ से कड़ी मेहनत करने के लिए मजबूर करते हैं। मुमकिन है उनकी बातचीत इस तरह से चला गया:

बॉब: पैटर्न मिलान का उपयोग करना, सॉफ्टवेयर की पहचान करता है बदसूरत कोड
चार्ली: -और यह ठीक करता है!
बॉब: नहीं। यह प्रत्येक अपराध के बारे में एक संदेश प्रिंट करता है।
चार्ली: और फिर उपयोगकर्ता उन्हें ठीक करने के लिए राइट-क्लिक करता है?
बॉब: नहीं। संदेश उन्हें 'अल्पविराम के चारों ओर अमान्य अंतर' बताता है।
चार्ली: और फिर बताता है कि उपयोगकर्ता इसे कैसे ठीक कर सकता है?
बॉब: नहीं, वह जानकारी एक अलग दस्तावेज़ में है।
चार्ली: Google पर?
बॉब: सं।

मुझे स्टाइल कॉप से ​​नफरत है। यह न्यूनतम व्यवहार्य उत्पाद से नीचे है।

+2

Resharper autofixes मुद्दों के लिए Stylecop प्लगइन ... – felickz

0

पहली बार स्टाइलकॉप चलाना आमतौर पर मेरे अनुभव में फेंकने वाली अधिकांश त्रुटियां कोड-स्वरूपण से जुड़ी होती हैं।

मैं StyleCop नियमों से मेल करने के लिए कोड पुनर्निर्माण करने के लिए दो उपकरणों का इस्तेमाल किया:

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

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

मुझे नहीं लगता कि वहाँ FxCop के लिए उपकरण हैं, और मुझे विश्वास है वहाँ होना चाहिए नहीं कर रहा हूँ ..

1

जो मैं StyleCop समस्याओं को ठीक कर रहे हैं ठीक करने के लिए उपयोग करने के कुछ उपकरण,

  1. CodeMaid (नि: शुल्क एक खुला स्रोत)
  2. GhostDoc (पहले से ही इस खरीदने की जरूरत ही post.You में पहले उत्तर में सुझाव दिया, एक सीमित 14 दिनों के परीक्षण संस्करण के साथ आता है)
  3. StyleCopFixer (पहले से ही पहले repl में सुझाव दिया एक ही post.Free एक में एँ, VS2010 के लिए एक विस्तार)

आशा है कि यह मदद करता है :)

0

StyleCopAutoFix एक सांत्वना अनुप्रयोग है कि स्वचालित रूप से याद आ रही है (या अनावश्यक से संबंधित StyleCop उल्लंघन ठीक कर देंगे) रिक्त है के रूप में आता लाइनों। यह एक मुक्त स्रोत मुक्त है।

हालांकि उल्लंघन के दायरे का दायरा काफी सीमित है, यह उन्हें एक सुरक्षित तरीके से ठीक करता है (यह संभावना नहीं है कि यह आपके कोड को तोड़ देगा या व्यवहार को बदल देगा)। ये उल्लंघन भी सबसे आम हैं।

यदि आप विजुअल स्टूडियो का उपयोग करते हैं, तो मैं इस स्क्रिप्ट को चलाने की भी सिफारिश करता हूं: https://gist.github.com/JayBazuzi/9e0de544cdfe0c7a4358। यह स्वचालित रूप से समाधान में सभी फ़ाइलों के सभी कोड स्वतः स्वरूपित करता है।

परियोजनाओं पर मैंने इस एप्लिकेशन (और ऊपर वीएस स्क्रिप्ट) चलाया, यह सभी उल्लंघनों का 60% तक तय करता है।

अस्वीकरण: मैं इसका लेखक हूं। -

0

एक (अपेक्षाकृत) नई दृश्य स्टूडियो ब्लॉक (StyleCopAid) पर एक्सटेंशन नहीं है इसे आजमाइए:

https://visualstudiogallery.msdn.microsoft.com/505d2931-143f-4055-b7dd-a5d7c95bb085

अन्य बातों के अलावा - नियम आदेश देने फिक्स, कुछ संदेश को दबा, और एक है पूर्ववत विकल्प।

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