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.

Kapcsolódó cikkek