Sdílet prostřednictvím


Zjištění kódu duplikovat pomocí kódu klonování zjišťování

Kód klonů jsou samostatné fragmenty kódu, které jsou velmi podobné.Jsou běžné jev v aplikaci, která byla ve vývoji určitou dobu. Klony je těžké změnit aplikace, protože je nutné nalézt a aktualizovat více než jeden fragment.Visual Studio můžete najít klonuje kód tak, aby bylo možné refactor je.

Můžete najít klony konkrétní fragmentu nebo najít všechny klony v řešení.Kromě zjištění přímé kopií, analytický nástroj klonovací najdete fragmenty, které se liší názvy proměnných a parametry a které mají některé příkazy změněno.

Klonování analyzátoru kódu hledá duplicitní kódu v aplikaci Visual C# a Visual Basic projektů v rámci řešení Visual Studio.

Kód výsledku analýzy klonování se silným shod

Najít klony zejména fragmentu

  1. Zvýrazněte fragment kódu v rámci metody nebo definice get a set.

    [!POZNÁMKA]

    Můžete najít klony příkazy, ale není prohlášení jako podpis pole, metodu nebo vlastnost.

  2. Zvolte v místní nabídce fragment, Najít odpovídající klonů v roztoku.

Tuto metodu použijte, pokud chcete vědět, pokud je podobné metody nebo fragment stávajících v řešení.

Vyhledání všech klonů v roztoku

  • Na Analyse nabídce zvolte Řešení analyzovat kód klonů.

Tato metoda je zvláště užitečná, když chcete zobrazit kód.

[!POZNÁMKA]

Tento příkaz nejsou zjištěny klonů, které jsou menší než 10 prohlášení dlouhé.

Výsledky jsou uvedeny v pořadí podle podobnosti.Rozbalte každou položku zobrazit fragmenty kódu.

Všimněte si, že podobnosti jsou zjištěny i v případě místní proměnné, které jsou používány úlomky různé názvy a to i v případě, že několik příkazy byly vloženy nebo odstraněny.

Porovnat klonů

  1. V Kód klonování výsledky okna, vyberte dva soubory nebo klonování skupinu, která obsahuje dva soubory.

  2. Zvolte Porovnat z místní nabídky.

Tato funkce používá stejný nástroj porovnání slouží k porovnání verzí ve správě zdrojů.Pokud chcete změnit, zvolte Možnosti z Nástroje nabídce.Rozbalte ovládacího prvku zdrojového a Visual Studio Team Foundation Server.Zvolte Konfigurace uživatele nástroje a Přidat.

Z analýzy vyloučit určité soubory nebo metody

  1. Přidáte nový soubor XML do projektu Visual Studio, ve kterém jsou definovány metody, které chcete vyloučit.

    Nezáleží, zda je soubor součástí projektu.Musí být v adresáři začátek projektu.

  2. Změna přípony názvu souboru.codeclonesettings

  3. Upravte obsah souboru tak, aby jej následujícímu příkladu.

    <CodeCloneSettings>
      <Exclusions>
        <!-- Add any combination of the following node types. -->
        <!-- Absolute or relative path names: -->
        <File>MyFile.cs</File>
        <!-- Filepaths may contain wildcards: -->
        <File>GeneratedFiles\*.cs</File>
        <!-- Namespace, Type, and FunctionName must be fully qualified: -->
        <Namespace>MyCompany.MyProject</Namespace>
        <Type>MyCompany.MyProject.MyClass1</Type>
        <FunctionName>MyCompany.MyProject.MyClass2.MyMethod</FunctionName>
        <!-- Names may contain wildcards: -->
        <Namespace>*.AnotherProject</Namespace>
        <Type>*.AnotherClass*</Type>
        <FunctionName>MyProject.*.AnotherMethod</FunctionName>
      </Exclusions>
    </CodeCloneSettings>      
    

Jaké klonuje budou nalezeny?

Code analyzer klonování najdete "near Paní" klonů.

Kód klonuje často výsledkem vývojářům kopírování kódu a přizpůsobit ji na nové místo.Proto je nejjednodušší zvažte stupeň změny lze provést před analyzátoru nepodaří najít klon.Následující úpravy lze provést a klon bude stále rozpoznán.V každém případě je tolerance určitý počet takových změn:

  • Přejmenování identifikátorů.

  • Vkládat a odstraňovat příkazy.

  • Přeuspořádat příkazy.

Hh205279.collapse_all(cs-cz,VS.110).gifCo duplicity nebude nalezena?

  • Deklarace typu srovnání.Například pokud máte dvě třídy sadami velmi podobné prohlášení pole, se nemá hlásit jako klony.

    Příkazy pouze v metodách a definice vlastností jsou porovnány.

  • Analyzovat řešení pro kód klonuje klonů, které jsou menší než 10 prohlášení dlouhé nenajde.

    Můžete však použít Najít odpovídající klonů v roztoku na kratší fragmenty.

  • Fragmenty s více než 40 % změněn tokeny.

  • Pokud projekt obsahuje .codeclonesettings souboru prvky, které jsou definovány v tomto projektu nebudou prohledány, pokud jsou pojmenovány v kódu Exclusions část .codeclonesettings souboru.

  • Některé druhy generovaný kód:

    1. *.designer.cs, *.designer.vb

    2. InitializeComponentmetody

    Ale to neplatí automaticky generovaného kódu.Například pokud používáte text šablony, můžete chtít vyloučení vygenerované soubory v jejich názvů .codeclonesettings souboru.

Použití kódu klonování analýzy

Hledání klony je obvykle vhodná v následujících případech:

  • Když aktualizujete existující kód. Při stanovení chyby, nebo reagovat na změny požadavků, obvykle začněte hledání umístění v kódu, který chcete změnit.Před provedením změny, Hledat klonů tohoto kódu segmentu.Pokud jsou zjištěny klony:

    1. Zvažte, zda je nutné provést stejnou změnu každého klonování.

    2. Zvažte také, zda je dobrou příležitostí k refactor Klonovaný kód do sdílené metody nebo třídy.

  • Architektonické vyčištění. Ke konci každé iteraci pomocí Řešení analyzovat kód klonů na analyzovat nabídce.

  • Při vytváření kódu. Pokud jste napsali nový kód, nástroj Najít podobné kód, který již existuje.

Použití analýzy klonování základ velké kódu

Kód zkopírován často mezi zřetelně oddělené části velký projekt a často je zkopírován do různých částí organizace.Měli byste proto hledat klonů se jako velké základní kód jako, nejen v okamžité řešení, na kterém pracujete.

Použít code analyzer klonování ve zdrojovém stromu, vytvořte řešení, která obsahuje všechny projekty v úložišti.

Tip

Nezapomeňte, že můžete projektu zahrnout více řešení.Analyzovat velké projekty klony kód, můžete vytvořit řešení, která zahrnuje všechny projekty.Není třeba odebrat projekty z řešení, jejichž prostřednictvím jsou obvykle přístupné.

Generovaný kód

Kód analýzy klonování s generovaný kód nefunguje.Příklad:

  • Kód generovaný z T4 šablon.

    Další informace o T4 viz Kód generace a Text šablony T4.

  • Kód generovaný z Návrháře rozhraní WPF uživatel nebo návrhář například Silverlight.

Vyloučit soubory generované T4 klonovat z kódu šablony analýzy

  1. Umístěte šablony podřízeného adresáře projektu aplikace Visual Studio.Název, například GeneratedFiles.

  2. Do projektu přidat nový textový soubor a změnit jeho název a rozšířenít4Exclusions.codeclonesettings

  3. Změňte obsah souboru takto:

    <CodeCloneSettings>
      <Exclusions>
        <File>GeneratedFiles\*.cs</File>
      </Exclusions>
    </CodeCloneSettings>