Dag i livet för en devops-utvecklare: Pausa arbete, åtgärda en bugg och genomföra en kodgranskning

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Funktionerna Visual Studio My Work och Code Review stöder kontextväxling från en arbetstråd till en annan. Teammedlemmar kan också enkelt utbyta meddelanden om föreslagna ändringar i koden. Den här artikeln illustrerar dessa funktioner och fortsätter självstudien från Day i livet för en devops-utvecklare: Skriv ny kod för en användarberättelse.

Kommentar

Visual Studio My Work - och Code Review-funktioner är tillgängliga med följande utgåvor:

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

I den här självstudien beskrivs hur du kan pausa arbetet med en aktuell uppgift för att omedelbart åtgärda en bugg som blockerar gruppmedlemmar i ett annat arbetsobjekt. När du har åtgärdat felet kan du be kollegorna att granska korrigeringen. När granskningen har slutförts kan du checka in korrigeringen och återuppta arbetet med den ursprungliga uppgiften.

Pausa aktuellt arbete

När du arbetar med ett kvarvarande objekt kan du få reda på en bugg i ett annat objekt som blockerar gruppmedlemmar. Om det är ett område som du är bekant med kan du skapa en uppgift för att åtgärda felet och tilldela det till dig själv att arbeta med omedelbart.

Innan du börjar arbeta med den nya buggen vill du se till att ditt nuvarande arbete läggs åt sidan på en säker plats på teamets server. I Visual Studio Team Explorer går du till sidan Mitt arbete och väljer Pausa för att spara på servern:

  • Allt arbete du har gjort, inklusive ändringar i kod, tester och andra filer.

  • Öppna lösningar, fönster, brytpunkter, visningsfönstervariabler och andra bitar av Visual Studio-tillstånd.

Nu när arbetsytan är ren drar du den nya aktiviteten från Tillgängliga arbetsobjekt till Pågående arbete. Du är redo att undersöka och skriva korrigeringen.

Kommentar

Din arbetskontext är länkad till de arbetsobjekt som visas som Pågårsidan Mitt arbete . Genom att använda Pausa och Återuppta kan du snabbt växla mellan olika uppgifter. Dina öppna lösningar och filer, kodändringar och Visual Studio-layout växlas alla ihop.

Så här pausar du aktuellt arbete och börjar arbeta med en annan uppgift

Växla arbetskontext:

  1. Om du inte redan är ansluten till projektet som du vill arbeta i ansluter du till projektet.

  2. På startsidan i Team Explorer väljer du Mitt arbete.

  3. På sidan Mitt arbete går du till avsnittet Pågående arbete och väljer Pausa.

  4. I rutan som visas kan du också ändra det namn som du vill ge den här uppsättningen pausat arbete och sedan välja Pausa. Objektet visas under Pausat arbete.

    Skärmbild av att pausa en del arbete.

  5. Dra ett arbetsobjekt från Tillgängliga arbetsobjekt till Pågående arbete. Eller så kan du växla till ett arbetsobjekt som du tidigare pausade genom att dra det från Pausat arbete.

    Om arbetsobjektet som du vill tilldela själv inte visas under Tillgängliga arbetsobjekt kan du:

    • Skapa en ny uppgift eller ett annat arbetsobjekt genom att välja Ny.
    • Välj en annan fråga genom att välja Öppna fråga.

Dricks

Länken Pågående arbetsobjekt till dina aktuella kodändringar och Visual Studio-tillstånd. Om du vill att Visual Studio ska hjälpa dig att organisera ditt arbete kontrollerar du att lämpliga objekt är i statusen Pågår arbete när du växlar från en aktivitet till en annan.

Undersöka felet

Öppna den nya buggen och läs beskrivningen. I det här exemplet anger beskrivningen av en medlem i testteamet att en betald faktura ibland felaktigt flaggas som obetald. En ögonblicksbild av labbmiljön är kopplad till buggarbetsobjektet. Du öppnar den virtuella dator (VM) som testet kördes på, ser den felaktiga fakturan och går tillbaka genom IntelliTrace-loggen. Du kan spåra felet till följande metod:

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

Från IntelliTrace-loggen ser du att metoden ibland returnerar false eftersom parametrarna skiljer sig med en extremt liten mängd. Du vet att avrundningsfel av den här typen är oundvikliga i flyttalsaritmetik, och att det är dålig praxis att testa flyttalsnummer för likhet.

Utöka testerna för att visa felet

När en bugg hittas visar den att det fanns en lucka i enhetstesterna eller att testet inte matchade användarnas faktiska behov. Innan du åtgärdar felet lägger du därför till ett test som visar förekomsten av det här felet:

// 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));
}

Kör testet och det misslyckas som förväntat.

Skärmbild av Enhetstestutforskaren som visar misslyckat test för lika med.

Gör så att testerna godkänns

Åtgärda koden:

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;
}

Testet godkänns nu:

Skärmbild av Enhetstestutforskaren som visar godkänt test för lika med.

Begära en kodgranskning

När du är nöjd med korrigeringen för felet ska du inte checka in ditt arbete ännu. Teams använder kodgranskningar för att öka den övergripande kodkvaliteten och minska risken för att skapa fler buggar. Använd Team Explorer för att begära kodgranskningar från gruppmedlemmar.

Så här begär du en kodgranskning

  1. I Team Explorer går du till sidan Mitt arbete under Pågående arbete och väljer Begär granskning.

    Sidan Ny kodgranskning visas.

    Skärmbild som visar sidan Granskning av begärandekod.

    • I fältet Ange namnet på en granskare anger du en eller flera granskare och trycker på Retur efter varje markering.
    • I nästa fält ändrar du namnet på granskningen om du vill.
    • I nästa fält kontrollerar du att rätt områdessökväg visas.
    • I nästa fält skriver du en valfri beskrivning.
  2. Välj Skicka begäran.

Granskarna meddelas om begäran via e-post.

Du kan också begära en kodgranskning av pausat arbete, en hyllor eller en ändringsuppsättning. Om du vill se en lista över ändringsuppsättningar öppnar du Källkontrollutforskaren och väljer knappen Historik .

Gör en kodgranskning

En granskare kan godkänna begäran om kodgranskning. Granskaren granskar koden, skriver några kommentarer på fil- och kodblockeringsnivå och skickar sedan tillbaka kodgranskningen till dig. En begärd granskare som är för upptagen för att granska koden kan avvisa granskningen.

I kommentarerna påpekar granskaren att testet är fel. Det tillåtna felet ska vara en angiven del av indatavärdena, inte en konstant kvantitet. Testet bör därför multiplicera felet med värdet.

// 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

Dricks

Teammedlemmarna använder testerna som fokus för diskussion. Om testerna är korrekta och tillräckliga blir koden också det. Till skillnad från koden representerar varje test ett separat skiftläge. Därför är testerna ofta enklare att diskutera än koden.

Så här gör du en kodgranskning

  1. På sidan Mitt arbete i Team Explorer högerklickar du på kodgranskningen i avsnittet Kodgranskningar och väljer Öppna.

    Sidan Kodgranskning visas.

    Skärmbild av sidan Kodgranskning.

  2. På sidan Kodgranskning kan du:

    • Välj Lägg till granskare för att lägga till andra granskare i begäran om kodgranskning.

    • Välj varje fillänk för att se ändringarna i filerna som uppdaterades för det här arbetsobjektet.

    • Använd Kommentarer för att diskutera ändringarna med författaren och andra granskare.

      Så här lägger du till kommentarer:

      • Välj Lägg till övergripande kommentar för att lägga till en övergripande kommentar i recensionen.
      • När du visar en fil väljer du en rad eller ett kodblock, högerklickar och väljer Lägg till kommentar.

      När du har lagt till varje kommentar väljer du Spara eller trycker på Ctrl+Retur.

  3. När du är klar med att skriva kommentarer väljer du Skicka kommentarer för att göra dina bidrag synliga för författaren och andra granskare.

Svara på en kodgranskning

Du får och svarar på kodgranskningen från granskarna. Du och granskarna kan utbyta kommentarer så ofta du vill. Granskningen avslutas när du stänger den.

Så här svarar du på en kodgranskning

  1. I Team Explorer går du till avsnittet Kodgranskningarsidan Mitt arbete och dubbelklickar på begäran, eller högerklickar på begäran och väljer Öppna.

    Sidan Kodgranskning visas.

    Skärmbild av hur du svarar på en kodgranskning.

  2. Under avsnittet Kommentarer läser du kommentarerna och svarar på dem efter behov. Om du vill svara på en kommentar väljer du Svara, anger din kommentar i rutan som visas och väljer sedan OK.

  3. Om du vill visa en fil och se de kodblock som har kommentarer eller redigera eller kommentera en fil går du till underavsnittet Filer . Högerklicka på filen och välj antingen:

    • Jämför (skrivskyddad)
    • Redigera lokal fil, eller
    • Lägg till filkommentering

    Du kan också markera kryssrutan bredvid en kommentar för att ange att kommentaren har åtgärdats.

  4. Om du vill skicka dina kommentarer väljer du Skicka kommentarer.

  5. När du och de andra granskarna har svarat på varandras kommentarer och är redo att stänga granskningen väljer du Stäng granskning och väljer sedan:

    • Slutförd för att indikera att granskningen är klar, eller
    • Överge för att indikera att du avbryter granskningen.

Åtgärda testet och koden

När du har läst granskningskommentarna kan du åtgärda enhetstestet enligt förslaget. Testet misslyckas nu. Detta visar att koden ännu inte är korrekt.

Du åtgärdar koden:

/// <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;
}

Testet godkänns igen.

Dricks

Följ samma metod som i kodutveckling för att åtgärda ett fel. Skriv ett test som misslyckas och gör sedan testet godkänt. Kontrollera koden och testerna endast när testerna godkänns.

Nu riktar du uppmärksamheten mot testfallet där felet upptäcktes. Stegen för att återskapa felet beskrivs tydligt i arbetsobjektet för testfall. Du följer stegen och upptäcker att fakturorna visas korrekt.

Checka in korrigeringen

Du checkar in den fasta koden och enhetstesterna. Tillståndet för felet anges automatiskt till Löst och värdet Tilldelad till tilldelas automatiskt till den medlem i testteamet som upptäckte felet. Teammedlemmen kontrollerar att felet har åtgärdats och stänger arbetsobjektet.

Så här checkar du in korrigeringen

  1. sidan Mitt arbete i Team Explorer väljer du Incheckning för att öppna sidan Väntande ändringar.

    Skärmbild av Checka in en uppdatering för att åtgärda en bugg.

  2. På sidan Väntande ändringar kontrollerar du att:

    • Alla relevanta ändringar visas i Inkluderade ändringar

    • Alla relevanta arbetsobjekt visas i Relaterade arbetsobjekt.

  3. Ange en kommentar som hjälper ditt team att förstå syftet med dessa ändringar när de tittar på versionskontrollhistoriken för de ändrade filerna och mapparna.

  4. Välj Incheckning.

Återuppta arbetet med en uppgift

Återuppta arbetet med din ursprungliga uppgift. Du kan komma tillbaka till arbetet snabbt eftersom alla dina kodändringar återställs till din arbetsyta tillsammans med viktiga tillståndsbitar som öppna fönster, brytpunkter och visningsfönstervariabler.

Så här återupptar du arbetet med en uppgift

  • sidan Mitt arbete i Team Explorer väljer du det ursprungliga arbetsobjektet under Pausat arbete och väljer Återuppta.

    Skärmbild av Återuppta en uppgift.

    Om du vill sammanfoga det pausade arbetet med väntande ändringar på arbetsytan väljer du Slå samman med Pågår.

När du återupptar ditt arbete återställer Visual Studio:

  • Din öppna lösning
  • Koden ändras
  • Tillstånd och position för öppna fönster
  • Brytpunkter
  • Titta på fönstervariabler och uttryck
  • Bokmärken