2009-01-30 29 views
9

मैं बस कुछ प्रेरणा की तलाश में हूं। विशेष रूप से प्रदर्शन और सुरक्षा के क्षेत्र में, नामकरण सम्मेलन महत्वपूर्ण हैं लेकिन 'ठंडा' नहीं हैं;)क्या किसी ने FxCop/StyleCop के लिए कोई अच्छा नियम बनाया है?

भले ही आपका नियम केवल आपके डोमेन/प्रोजेक्ट पर लागू हो, लेकिन यह दर्शाता है कि कोई नियम कितना शक्तिशाली हो सकता है, कृपया मुझे बताएं ।

मैं सी # के साथ काम करता हूं, लेकिन मुझे किसी भी भाषा के नियमों में रूचि है।

उत्तर

7

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

3

FxCop कस्टम नियमों को लिखने की गड़बड़ी का एक विकल्प व्यावसायिक उपकरण NDepend का उपयोग करना होगा। इस उपकरण के साथ कोई भी LINQ क्वेरीज़(namely CQLinq) पर कोड नियम लिख सकता है। अस्वीकरण: मैं उपकरण

200 code rules से अधिक के डेवलपर्स से एक डिफ़ॉल्ट रूप से प्रस्ताव है हूँ, इन नामकरण सम्मेलनों, डिजाइन, वास्तुकला, कोड गुणवत्ता, कोड विकास में शामिल हैं, मृत कोड, नेट Fx उपयोग ...

CQLinq कोड नियम है कि हो सकता है लिखने के लिए समर्पित है verified live in Visual Studio, या यह verified during build process and reported in an HTML/javascript report हो सकता है।

FxCop एपीआई या अन्य उपकरण से अधिक CQLinq की ताकत, कि यह एक कोड नियम लिखते हैं, और मिल तुरंत परिणाम के लिए सीधा है है। मिलान कोड तत्व ब्राउज़ करने के लिए सुविधाएं प्रस्तावित हैं। वस्तुतः यह है कि जैसा दिखता है:

CQLinq code rule

+0

यह वास्तव में वास्तव में शक्तिशाली दिखता है। आपके उपयोगकर्ता नाम से कहने की कोई आवश्यकता नहीं है कि आपके पास इस उपकरण के लिए "वरीयता" है, लेकिन यह बहुत प्रासंगिक और निश्चित रूप से मान्य है, साथ ही उत्तर अच्छी तरह लिखा गया है, इसलिए +1। –

1

मैं FxCop निर्देशिका

ConfigKeyExistsInConfig (सुनिश्चित करें कि कम उम्र के 2 नियमों के साथ एक अच्छा कामकाज आधार मिल गया है अब तक breusable.codeplex.com पर है कि एक जादू के साथ ConfigurationManager के सभी संदर्भ स्ट्रिंग कुंजी वास्तव में कॉन्फ़िग फ़ाइल में मौजूद है।

NoUnderscoresInProperties

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.FxCop.Sdk; 

namespace RulesByImaginaryDevelopment 
{ 
    public class NoUnderscoresInProperties : BaseRule 
    { 
    public NoUnderscoresInProperties() : base("NoUnderscoresInProperties") { } 

    public override ProblemCollection Check(Member member) 
    { 
     var prop = member as PropertyNode; 
     if(prop==null) 
      return Problems; 
     if(prop.Name.Name.Contains("_")) 
     { 
      Problems.Add(new Problem(new Resolution("Remove any '_' from name "+prop.Name.Name))); 
     } 
     return Problems; 
    } 
    } 
} 

भी http://msdn.microsoft.com/en-us/magazine/cc163930.aspx

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