Hogyan írjunk jó minőségű kódot
StyleCop - húga vagy testvére (akit a kényelmes) FxCop eszköz, amely írtam az előző részben. De, ellentétben a FxCop, StyleCop van számos arra vonatkozó kiegészítő szabályokat a regisztrációs kódot.
Telepítése után StyleCop Visual Studio van egy további funkciók:
Minden a szabályok több csoportba oszthatjuk:
Engedélyezése vagy letiltása szabályokat lehet a tulajdonságok ablakban:
Tekintsük az alapvető szabályokat, amelyekkel a fejlesztők.
dokumentáció szabályok
* MustBeDocumented - minden elem (módszerek, változók, stb dokumentálni kell, beleértve a privát tagok).
SA1625: ElementDocumentationMustNotBeCopiedAndPasted - leírása a változók különböznie kell:
SA1633: FileMustHaveHeader - minden fájl kell tartalmaznia sapka:
És a fájl nevének meg kell egyeznie az értéket a fájl (SA1638: FileHeaderFileNameDocumentationMustMatchFileName).
SA1642: ConstructorSummaryDocumentationMustBeginWithStandardText - Designer leírás egyeznie kell a minta „keretében egy új példányát az osztályban.”:
Ugyanez vonatkozik a destruktor (SA1643: DestructorSummaryDocumentationMustBeginWithStandardText).
Layout szabályok
SA1500: CurlyBracketsForMultiLineStatementsMustNotShareLine - zárójelben kell külön sorba, vagyis a helyett
Ugyanez vonatkozik a kód belsejében módszerekkel (SA1507: CodeMustNotContainMultipleBlankLinesInARow).
Más szabályok vonatkoznak, általában annak szükségességét, hogy távolítsa el az üres sorokat.
karbantarthatóság szabályok
SA1119: StatementMustNotUseUnnecessaryParenthesis - kód ne tartalmazzon extra zárójelben:
Minden módszer és tulajdonságai egyértelműen meg kell határozni hozzáférési azonosítót (SA1400: AccessModifierMustBeDeclared).
Matematikai kifejezések, akkor egyértelműen fel kell tüntetni a végrehajtás sorrendje további zárójelben (SA1407: ArithmeticExpressionsMustDeclarePrecedence). Ie a következő kódot:
kell átírni az alábbiak szerint:
A kód nem tartalmazhat használt kód (SA1409: RemoveUnnecessaryCode):
elnevezési szabályok
Röviden, a nevét módszerek, osztályok kell kezdeni nagybetűvel (SA1300: ElementMustBeginWithUpperCaseLetter) és interfészek - az „I” betűvel (SA1302: InterfaceNamesMustBeginWithI). Nem tudja használni a előtagokat M_ és S_ változó nevét (SA1308: VariableNamesMustNotBePrefixed), és nem tudja használni az aláhúzás karakter (SA1309: FieldNamesMustNotBeginWithUnderscore, SA1310: FieldNamesMustNotContainUnderscore).
rendelési szabályok
Az egyik legtöbbet emlegetett szabályok - minden usings belül kell elhelyezni, névterek.
Ha beszélünk az oka egy ilyen szabály, ez jár a felmerülő nehézségek kezelése álnevek.
Például a következő kód fordítása sikeres:
De itt nem egyértelmű, hogy melyik Guid fogják használni.
Ez a kód egy figyelmeztető CS0576: Névtér „Microsoft.Sample” definícióját ütköző alias „Guid”:
De segít a félreértések elkerülése érdekében a neveket.
Minden elem kell helyezni a megfelelő sorrendben a forrás fájlt (SA1201: ElementsMustAppearInTheCorrectOrder):
- Extern Alias irányelvek
- használata irányelvek
- névterek
- A küldöttek
- Enums
- interfészek
- Struktúrák
- osztályok
A class, szerkezet, interfész eljárást a következőknek kell lenniük:
Az elemeket kell válogatni a hozzáférési szint (SA1202: ElementsMustBeOrderedByAccess):
Minden usings kell válogatni és a fel nem használt - törölt (SA1210: UsingDirectivesMustBeOrderedAlphabeticallyByNamespace).
olvashatóságáról
Ki kell használni ezt az előtagot eléréséhez osztályának tagja (SA1101: PrefixLocalCallsWithThis). További szabályok Az ilyen típusú kapcsolódó helymeghatározó paraméterek régiók, kifejezések, stb
String.Empty kell használni az üres string (SA1122: UseStringEmptyForEmptyStrings).
Ki kell használni a beépített álnevek (int, string helyett Int32, String, stb) (SA1121: UseBuiltInTypeAlias).
térköz szabályok
Ebben a csoportban, sok kapcsolódó szabályok lapok és terek. Röviden, a kód nem tartalmazhat felesleges szóközöket, és a használata fülek tilos (SA1027: TabsMustNotBeUsed).
Letiltása a szabályokat a kódot
Annak érdekében, hogy nem olvassa be a kódot egy bizonyos szabály, akkor egy speciális attribútum:
- Szabály kategória - space StyleCop névtér, amely bejelentette. Például, Microsoft.StyleCop.CSharp.DocumentationRules;
- Szabály azonosítója -identifikator szabályok shortname formátum: teljesnév. Például, SA1600: ElementsMustBeDocumented;
- Indokolás - szöveget, amelyeket használni fognak megmagyarázni, hogy miért az adott szabály hiányzott.
Ha le szeretné tiltani az összes szabályt egy adott névtér, megteheti:
StyleCop az ReSharper
Ezen kívül, valójában a StyleCop, van egy másik termék hívott StyleCop az ReSharper. Ahogy azt sejteni lehet a név, ez a eszközt használnak, hogy integrálja a szabályokat ReSharper.
Általánosságban, a használata StyleCop teszi a kódot szép és egyszerű olvashatóság szempontjából és a design, ami nagyon fontos a következetes támogatását.