Den v životě vývojáře devops: Pozastavení práce, oprava chyby a kontrola kódu

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Visual Studio 2019 | Visual Studio 2022

Funkce Moje práce a Kontrola kódu v sadě Visual Studio podporují přepínání kontextu z jednoho vlákna do jiného. Členové týmu si také můžou snadno vyměňovat zprávy o navrhovaných změnách kódu. Tento článek ukazuje tyto funkce a pokračuje v kurzu Den v životě vývojáře devops: Psaní nového kódu pro uživatelský příběh.

Poznámka

Funkce Moje práce a Revize kódu v sadě Visual Studio jsou k dispozici v následujících edicích:

  • Visual Studio 2022: Visual Studio Community, Visual Studio Professional a Visual Studio Enterprise
  • Visual Studio 2019: Visual Studio Professional a Visual Studio Enterprise

Tento kurz popisuje, jak můžete pozastavit práci na aktuálním úkolu, abyste okamžitě opravili chybu, která blokuje členy týmu v jiné pracovní položce. Po opravě chyby můžete požádat kolegy, aby zkontrolovali opravu, a po dokončení kontroly se změnami opravu a pokračovat v práci na původním úkolu.

Pozastavit aktuální práci

Když pracujete na položce backlogu, můžete zjistit chybu v jiné položce, která blokuje členy týmu. Pokud se jedná o oblast, kterou znáte, můžete vytvořit úkol, který chybu opraví, a přiřadit ji sami sobě, abyste na ní mohli okamžitě pracovat.

Než začnete pracovat na nové chybě, chcete se ujistit, že je vaše aktuální práce vyhrazena na bezpečném místě na serveru týmu. V Team Exploreru sady Visual Studio na stránce Moje práce zvolte Pozastavit a uložte ho na server:

  • Veškerá práce, kterou jste udělali, včetně změn kódu, testů a dalších souborů.

  • Otevřete řešení, okna, zarážky, watch proměnné oken a další části stavu sady Visual Studio.

Teď, když je pracovní prostor čistý, přetáhněte nový úkol z části Dostupné pracovní položky do části Probíhá práce. Jste připraveni prozkoumat a napsat opravu.

Poznámka

Pracovní kontext je propojený s pracovními položkami, které se na stránce Moje práce zobrazují jako Probíhající. Pomocí funkce Pozastavit a Obnovit můžete rychle přepínat mezi různými úkoly. Vaše otevřená řešení a soubory, změny kódu a rozložení sady Visual Studio se přepínají společně.

Pozastavení aktuální práce a zahájení práce na jiném úkolu

Přepnutí pracovního kontextu:

  1. Pokud ještě nejste připojení k projektu, ve kterém chcete pracovat, připojte se k projektu.

  2. Na domovské stránce Team Exploreru zvolte Moje práce.

  3. Na stránce Moje práce v části Probíhá práce zvolte Pozastavit.

  4. V zobrazeném poli volitelně změňte název, kterému chcete dát tuto sadu pozastavené práce, a pak vyberte Pozastavit. Položka se zobrazí v části Pozastavená práce.

    Snímek obrazovky s pozastavením některých prací

  5. Přetáhněte pracovní položku z části Dostupné pracovní položky do probíhající práce. Nebo můžete přepnout na pracovní položku, kterou jste dříve pozastavili přetažením z pozastavené práce.

    Pokud se pracovní položka, kterou chcete přiřadit sami, nezobrazuje v části Dostupné pracovní položky, můžete:

    • Vytvořte nový úkol nebo jinou pracovní položku výběrem možnosti Nový.
    • Vyberte jiný dotaz výběrem možnosti Otevřít dotaz.

Tip

Probíhající pracovní položky odkazují na aktuální změny kódu a stav sady Visual Studio. Pokud chcete, aby vám sada Visual Studio mohla pomoct s uspořádáním práce, ujistěte se, že při přechodu z jednoho úkolu na jiný jsou příslušné položky ve stavu Probíhající práce .

Prošetření chyby

Otevřete novou chybu a přečtěte si popis. V tomto příkladu popis člena testovacího týmu uvádí, že placená faktura je někdy nesprávně označena jako nezaplacená. Snímek testovacího prostředí je připojený k pracovní položce chyby. Otevřete virtuální počítač, na kterém byl test spuštěn, zobrazíte nesprávnou fakturu a projdete protokol IntelliTrace. Chybu můžete vysledovat pomocí následující metody:

public class LocalMath
{
    public static bool EqualTo(double a, double b)
    {
        return a == b;
    }

Z protokolu IntelliTrace vidíte, že někdy metoda vrátí false, protože parametry se liší o velmi malou část. Víte, že chyby zaokrouhlení tohoto typu jsou v aritmetice s plovoucí desetinnou čárkou nevyhnutelné a že je špatným postupem testovat čísla s plovoucí desetinnou čárkou z hlediska rovnosti.

Rozšíření testů tak, aby zobrazovaly chybu

Když se najde chyba, ukáže se, že v testech jednotek byla mezera nebo že test neodpovídá skutečným potřebám uživatelů. Proto před opravou chyby přidejte test, který demonstruje přítomnost této chyby:

// Added 2022-02-02 for bug 654321:
/// <summary>
/// Make sure that number equality test allows for 
/// small rounding errors.
/// </summary>
[TestMethod]
public void TestDoublesEqual()
{
    // Allow a rounding error of 1 in 1000000:
    TestEqual(1, 1e-7, true); // Less than allowed error
    TestEqual(1, 1e-5, false); // More than allowed error
    TestEqual(1000, 1e-7, true); // Less than allowed error
    TestEqual(1000, 1e-5, false); // More than allowed error
}
private void TestEqual(double value, double error, bool result)
{
    // Try different combinations of error and value:
    Assert.IsTrue(result == LocalMath.EqualTo(value + error, value));
    Assert.IsTrue(result == LocalMath.EqualTo(value, value + error));
    Assert.IsTrue(result == LocalMath.EqualTo(value - error, value));
    Assert.IsTrue(result == LocalMath.EqualTo(value, value - error));
}

Spusťte test a podle očekávání selže.

Snímek obrazovky Průzkumníka testování jednotek zobrazující neúspěšný test pro equal

Provedení testů

Opravte kód:

public static bool EqualTo(double a, double b)
{
    // Allow for rounding errors.
    // For example, a == 2.0 and b = 1.99999999999

    const double allowedError = 1/1000000;
    return System.Math.Abs(a - b) < allowedError;
}

Test teď projde:

Snímek obrazovky Průzkumníka testů jednotek zobrazující úspěšný test pro rovná se

Žádost o revizi kódu

Až budete s opravou chyby spokojeni, nekontrolujte svou práci. Aplikace Teams používají revize kódu ke zvýšení celkové kvality kódu a snížení rizika vytváření dalších chyb. Pomocí Team Exploreru můžete požádat o kontrolu kódu od členů týmu.

Žádost o revizi kódu

  1. V Team Exploreru na stránce Moje práce v části Probíhá práce zvolte Požádat o revizi.

    Zobrazí se stránka Nová revize kódu .

    Snímek obrazovky se stránkou Žádost o revizi kódu

    • Do pole Zadejte jméno revidujícího zadejte jednoho nebo více revidujících a po každém výběru stiskněte Klávesu Enter.
    • V dalším poli změňte název recenze, pokud chcete.
    • V dalším poli se ujistěte, že je zobrazena správná cesta k oblasti.
    • Do dalšího pole zadejte volitelný popis.
  2. Zvolte Odeslat žádost.

Revidující budou na žádost upozorněni e-mailem.

Můžete také požádat o kontrolu kódu pozastavené práce, sady odložených změn nebo sady změn. Pokud chcete zobrazit seznam sad změn, otevřete Průzkumníka správy zdrojového kódu a zvolte tlačítko Historie .

Provést revizi kódu

Revidující může žádost o kontrolu kódu přijmout. Revidující zkontroluje kód, napíše nějaké komentáře na úrovni bloků souborů a kódu a pak vám pošle recenzi kódu zpět. Vyžádaný kontrolor, který je příliš zaneprázdněný na to, aby si kód prostudoval, může kontrolu odmítnout.

V komentářích revidující poukazuje na to, že test je chybný. Povolenou chybou by měl být zadaný zlomek vstupních hodnot, nikoli konstantní množství. Test by tedy měl chybu vynásobit hodnotou.

// We allow a rounding error of 1 in 1000000
// as a fraction of the value:
TestEqual(1, 1e-7, true); // Less than allowed error
TestEqual(1, 1e-5, false); // More than allowed error
TestEqual(1000, 1000*1e-7, true); // Less than allowed error
TestEqual(1000, 1000*1e-5, false); // More than allowed error

Tip

Členové týmu používají testy jako fokus pro diskuzi. Pokud jsou testy správné a dostatečné, kód bude také. Na rozdíl od kódu představuje každý test samostatný případ. Z tohoto důvodu je často jednodušší probrat testy než kód.

Postup kontroly kódu

  1. Na stránce Moje práce v Team Exploreru klikněte pravým tlačítkem na kontrolu kódu v části Revize kódu a vyberte Otevřít.

    Zobrazí se stránka Revize kódu .

    Snímek obrazovky se stránkou Revize kódu

  2. Na stránce Revize kódu můžete:

    • Zvolte Přidat revidující a přidejte do žádosti o kontrolu kódu další revidující.

    • Výběrem odkazu na jednotlivé soubory zobrazíte změny souborů, které byly aktualizovány pro tuto pracovní položku.

    • Pomocí komentáře prodiskutujte změny s autorem a dalšími revidujícími.

      Přidání komentářů:

      • Zvolte Přidat celkový komentář a přidejte do recenze celkový komentář.
      • Při prohlížení souboru vyberte řádek nebo blok kódu, klikněte pravým tlačítkem a vyberte Přidat komentář.

      Po přidání jednotlivých komentářů vyberte Uložit nebo stiskněte Kombinaci kláves Ctrl+Enter.

  3. Až zadávání komentářů dokončíte, vyberte Odeslat komentáře , aby se vaše příspěvky zobrazovaly pro autora a další revidující.

Odpověď na revizi kódu

Obdržíte kontrolu kódu a odpovíte na ni od revidujících. Vy a revidující si můžete vyměňovat komentáře tak často, jak chcete. Kontrola skončí, když ji zavřete.

Odpověď na revizi kódu

  1. V Team Exploreru na stránce Moje práce přejděte do části Revize kódu a poklikejte na žádost nebo klikněte pravým tlačítkem na žádost a zvolte Otevřít.

    Zobrazí se stránka Revize kódu .

    Snímek obrazovky s odpovědí na revizi kódu

  2. V části Komentáře si přečtěte komentáře a podle potřeby na ně odpovězte. Pokud chcete odpovědět na komentář, zvolte Odpovědět, zadejte komentář do pole, které se zobrazí, a pak zvolte OK.

  3. Pokud chcete zobrazit soubor a zobrazit bloky kódu, které obsahují komentáře, nebo chcete soubor upravit nebo okomentovat, přejděte do pododdílu Soubory . Klikněte pravým tlačítkem na soubor a zvolte jednu z těchto možností:

    • Porovnat (jen pro čtení)
    • Upravit místní soubor nebo
    • Přidat komentář k souboru

    Můžete také zaškrtnout políčko vedle komentáře a tím označit, že byl komentář vyřešen.

  4. Pokud chcete poslat komentáře, zvolte Odeslat komentáře.

  5. Až vy a ostatní revidující dokončíte odpověď na komentáře ostatních a budete připraveni zavřít recenzi, vyberte Zavřít recenzi a pak vyberte:

    • Dokončeno , aby bylo uvedeno, že kontrola je dokončena, nebo
    • Pokud chcete označit, že recenzi rušíte, můžete ji opustit.

Oprava testu a kódu

Po přečtení komentářů ke kontrole můžete test jednotek opravit podle návrhu. Test teď selže. To ukazuje, že kód ještě není správný.

Opravíte kód:

/// <summary>
/// Returns true if two numbers are equal.
/// </summary>
public static bool EqualTo(double a, double b)
{
    // Allow for rounding errors.
    const double allowedErrorMultiple = 1/1000000;
    double allowedError = (System.Math.Abs(a) + System.Math.Abs(b)) * allowedErrorMultiple/2;
    return System.Math.Abs(a - b) < allowedError;
}

Test znovu projde.

Tip

Pokud chcete chybu opravit, postupujte podle stejného postupu jako při vývoji kódu. Napište test, který selže, a pak proveďte jeho úspěšné provedení. Kód a testy se změnami se změnami pouze v případech, kdy testy projdou.

Teď se soustředíte na testovací případ, ve kterém byla chyba zjištěna. Kroky pro reprodukci chyby jsou jasně popsané v pracovní položce testovacího případu. Postupujte podle pokynů a zjistíte, že jsou správně uvedené faktury.

Kontrola opravy

Zkontrolujete pevný kód a testy jednotek. Stav chyby se automaticky nastaví na Vyřešeno a hodnota Přiřazeno se automaticky znovu přiřadí členovi testovacího týmu, který chybu zjistil. Tento člen týmu ověří, že chyba byla opravena, a zavře pracovní položku.

Kontrola opravy

  1. V Team Exploreru na stránce Moje práce zvolte Check In a otevřete tak stránku Čekající změny.

    Snímek obrazovky s vrácením aktualizace za účelem vyřešení chyby

  2. Na stránce Čekající změny se ujistěte, že:

    • Všechny relevantní změny jsou uvedené v části Zahrnuté změny.

    • Všechny relevantní pracovní položky jsou uvedené v části Související pracovní položky.

  3. Zadejte komentář , který vašemu týmu pomůže pochopit účel těchto změn při pohledu na historii správy verzí změněných souborů a složek.

  4. Vyberte Check In.

Obnovení práce na úkolu

Pokračujte v práci na původním úkolu. Můžete se rychle vrátit do práce, protože všechny změny kódu se obnoví v pracovním prostoru spolu s důležitými částmi stavu, jako jsou otevřená okna, zarážky a watch proměnné okna.

Obnovení práce na úkolu

  • V Team Exploreru na stránce Moje práce vyberte původní pracovní položku v části Pozastavená práce a vyberte Pokračovat.

    Snímek obrazovky s obnovením úkolu

    Pokud chcete sloučit pozastavenou práci s čekajícími změnami v pracovním prostoru, zvolte Sloučit s probíhajícími změnami.

Když obnovíte práci, Visual Studio obnoví:

  • Vaše otevřené řešení
  • Změny kódu
  • Stav a umístění otevřených oken
  • Zarážky
  • Sledování proměnných a výrazů okna
  • Záložky