Dag in het leven van een devops-ontwikkelaar: Werk onderbreken, een bug oplossen en een codebeoordeling uitvoeren
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
De functies Visual Studio My Work en Code Review bieden ondersteuning voor contextwisseling van de ene thread naar de andere. Teamleden kunnen ook eenvoudig berichten uitwisselen over voorgestelde wijzigingen in de code. In dit artikel worden deze functies geïllustreerd en wordt de zelfstudie van Day in het leven van een devops-ontwikkelaar voortgezet: nieuwe code schrijven voor een gebruikersverhaal.
Notitie
Visual Studio My Work en Code Review-functies zijn beschikbaar met de volgende edities:
- Visual Studio 2022: Visual Studio Community, Visual Studio Professional en Visual Studio Enterprise
- Visual Studio 2019: Visual Studio Professional en Visual Studio Enterprise
In deze zelfstudie wordt beschreven hoe u het werk aan een huidige taak kunt onderbreken om onmiddellijk een fout op te lossen die teamleden in een ander werkitem blokkeert. Nadat de fout is opgelost, kunt u collega's vragen de oplossing te controleren. Nadat de beoordeling is geslaagd, controleert u de fix en hervat u het werk aan de oorspronkelijke taak.
Huidig werk onderbreken
Terwijl u aan een achterstandsitem werkt, krijgt u mogelijk informatie over een bug in een ander item dat teamleden blokkeert. Als het een gebied is waarmee u bekend bent, kunt u een taak maken om de fout op te lossen en deze onmiddellijk aan uzelf toe te wijzen om aan te werken.
Voordat u aan de nieuwe fout begint, wilt u ervoor zorgen dat uw huidige werk op een veilige plaats op de server van het team wordt geplaatst. Kies in Visual Studio Team Explorer op de pagina Mijn werk de optie Onderbreken om op de server op te slaan:
Al het werk dat u hebt uitgevoerd, inclusief wijzigingen in code, tests en andere bestanden.
Open oplossingen, vensters, onderbrekingspunten, kijkvenstervariabelen en andere bits van Visual Studio-status.
Nu uw werkruimte is opgeschoond, sleept u de nieuwe taak van Beschikbare werkitems naar In voortgangswerk. U bent klaar om de oplossing te onderzoeken en te schrijven.
Notitie
Uw werkcontext is gekoppeld aan de werkitems die worden weergegeven als In uitvoering op de pagina Mijn werk . Met onderbreken en hervatten kunt u snel schakelen tussen verschillende taken. Uw geopende oplossingen en bestanden, codewijzigingen en de Indeling van Visual Studio worden allemaal overgeschakeld.
Huidige werk onderbreken en aan een andere taak beginnen
Uw werkcontext wisselen:
Als u nog niet bent verbonden met het project waarin u wilt werken, maakt u verbinding met het project.
Kies Mijn werk op de startpagina van TeamVerkenner.
Kies Op de pagina Mijn werk in de sectie Wordt uitgevoerd werk opschorten.
Wijzig in het vak dat wordt weergegeven desgewenst de naam die u wilt geven aan deze set onderbroken werk en selecteer Vervolgens Onderbreken. Het item wordt weergegeven onder Opgeschort werk.
Sleep een werkitem van Available Work Items naar In Progress Work. U kunt ook overschakelen naar een werkitem dat u eerder hebt onderbroken door het te slepen vanuit Onderbroken werk.
Als het werkitem dat u zelf wilt toewijzen niet wordt weergegeven onder Beschikbare werkitems, kunt u het volgende doen:
- Maak een nieuwe taak of ander werkitem door Nieuw te kiezen.
- Selecteer een andere query door Open Query te selecteren.
Tip
De items in voortgangswerk koppelen aan uw huidige codewijzigingen en de status van Visual Studio. Als u Visual Studio wilt toestaan om uw werk te organiseren, moet u ervoor zorgen dat de juiste items de status In voortgangswerk hebben wanneer u van de ene taak naar de andere overschakelt.
De fout onderzoeken
Open de nieuwe fout en lees de beschrijving. In dit voorbeeld geeft de beschrijving door een lid van het testteam aan dat een betaalde factuur soms onjuist is gemarkeerd als onbetaald. Er wordt een momentopname van een testomgeving gekoppeld aan het werkitem voor fouten. U opent de virtuele machine (VM) waarop de test is uitgevoerd, bekijk de onjuiste factuur en stap terug door het IntelliTrace-logboek. U kunt de fout traceren naar de volgende methode:
public class LocalMath
{
public static bool EqualTo(double a, double b)
{
return a == b;
}
In het IntelliTrace-logboek ziet u dat de methode soms onwaar retourneert omdat de parameters verschillen met een extreem kleine hoeveelheid. U weet dat afrondingsfouten van dit soort onvermijdelijk zijn in rekenkundige drijvende komma en dat het een slechte gewoonte is om drijvendekommagetallen te testen op gelijkheid.
De tests uitbreiden om de fout weer te geven
Wanneer er een fout wordt gevonden, ziet u dat er een kloof is in de eenheidstests of dat de test niet overeenkomt met de werkelijke behoeften van de gebruikers. Voordat u de fout kunt oplossen, voegt u daarom een test toe die de aanwezigheid van deze fout laat zien:
// 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));
}
Voer de test uit en mislukt zoals verwacht.
De tests laten slagen
Herstel de code:
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;
}
De test is nu geslaagd:
Een codebeoordeling aanvragen
Wanneer u tevreden bent met uw oplossing voor de fout, moet u uw werk nog niet inchecken. Teams gebruiken codebeoordelingen om de algehele codekwaliteit te verhogen en het risico te verminderen dat er meer fouten ontstaan. Gebruik Team Explorer om codebeoordelingen van teamleden aan te vragen.
Een codebeoordeling aanvragen
Kies in Teamverkenner op de pagina Mijn werk onder In voortgang werk de optie Controle aanvragen.
De pagina Nieuwe codebeoordeling wordt weergegeven.
- Geef in het veld Enter de naam van een revisor op, geef een of meer revisoren op en druk na elke selectie op Enter.
- Wijzig in het volgende veld desgewenst de naam van de beoordeling.
- Controleer in het volgende veld of het juiste gebiedspad wordt weergegeven.
- Typ een optionele beschrijving in het volgende veld.
Kies Aanvraag verzenden.
De revisoren worden per e-mail op de hoogte gesteld van de aanvraag.
U kunt ook een codebeoordeling aanvragen van opgeschort werk, een plankenset of een wijzigingenset. Als u een lijst met wijzigingensets wilt zien, opent u Source Control Explorer en kiest u de knop Geschiedenis .
Een codebeoordeling uitvoeren
Een revisor kan de aanvraag voor codebeoordeling accepteren. De revisor beoordeelt de code, schrijft enkele opmerkingen op bestand- en codeblokniveaus en stuurt de codebeoordeling vervolgens terug naar u. Een aangevraagde revisor die te druk is om de code te controleren, kan de beoordeling weigeren.
In de opmerkingen wijst de revisor erop dat de test onjuist is. De toegestane fout moet een opgegeven fractie van de invoerwaarden zijn, niet een constante hoeveelheid. De test moet dus de fout met de waarde vermenigvuldigen.
// 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
De teamleden gebruiken de tests als een focus voor discussie. Als de tests juist zijn en voldoende zijn, is de code ook. In tegenstelling tot de code vertegenwoordigt elke test een afzonderlijk geval. Daarom zijn de tests vaak gemakkelijker te bespreken dan de code.
Een codebeoordeling uitvoeren
Klik op de pagina Mijn werk in TeamVerkenner met de rechtermuisknop op de codebeoordeling in de sectie Codebeoordelingen en selecteer Openen.
De pagina Codebeoordeling wordt weergegeven.
Op de pagina Codebeoordeling kunt u het volgende doen:
Kies Revisor toevoegen om andere revisoren toe te voegen aan de codebeoordelingsaanvraag.
Selecteer elke bestandskoppeling om de wijzigingen in de bestanden te zien die zijn bijgewerkt voor dit werkitem.
Gebruik Opmerkingen om de wijzigingen met de auteur en andere revisoren te bespreken.
Opmerkingen toevoegen:
- Kies Algemene opmerking toevoegen om een algemene opmerking toe te voegen aan de beoordeling.
- Wanneer u een bestand bekijkt, selecteert u een regel of codeblok, klikt u met de rechtermuisknop en selecteert u Opmerking toevoegen.
Nadat u elke opmerking hebt toegevoegd, selecteert u Opslaan of drukt u op Ctrl+Enter.
Wanneer u klaar bent met het invoeren van opmerkingen, selecteert u Opmerkingen verzenden om uw bijdragen zichtbaar te maken voor de auteur en andere revisoren.
Reageren op een codebeoordeling
U ontvangt en reageert op de codebeoordeling van de revisoren. U en de revisoren kunnen zo vaak opmerkingen uitwisselen als u wilt. De beoordeling eindigt wanneer u deze sluit.
Reageren op een codebeoordeling
Ga in Team Explorer op de pagina Mijn werk naar de sectie Codebeoordelingen en dubbelklik op de aanvraag of klik met de rechtermuisknop op de aanvraag en kies Openen.
De pagina Codebeoordeling wordt weergegeven.
Lees onder de sectie Opmerkingen de opmerkingen en beantwoord ze indien nodig. Als u een opmerking wilt beantwoorden, kiest u Beantwoorden, typt u uw opmerking in het vak dat wordt weergegeven en kiest u OK.
Als u een bestand wilt weergeven en de codeblokken wilt zien die opmerkingen bevatten, of als u een bestand wilt bewerken of opmerkingen wilt maken, gaat u naar de subsectie Bestanden . Klik met de rechtermuisknop op het bestand en kies een van de volgende opties:
- Vergelijken (alleen-lezen)
- Lokaal bestand bewerken of
- Bestandscommentaar toevoegen
U kunt ook het selectievakje naast een opmerking inschakelen om aan te geven dat de opmerking is geadresseerd.
Kies Opmerkingen verzenden om uw opmerkingen te verzenden.
Wanneer u en de andere revisoren klaar zijn met het reageren op elkaars opmerkingen en u klaar bent om de beoordeling te sluiten, selecteert u Beoordeling sluiten en selecteert u:
- Voltooid om aan te geven dat de beoordeling is voltooid of
- Laat af om aan te geven dat u de beoordeling annuleert.
De test en de code herstellen
Nadat u de beoordelingsopmerkingen hebt gelezen, kunt u de eenheidstest herstellen zoals voorgesteld. De test mislukt nu. Dit laat zien dat de code nog niet juist is.
U lost de code op:
/// <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;
}
De test gaat weer voorbij.
Tip
Als u een fout wilt oplossen, volgt u dezelfde procedure als bij het ontwikkelen van code. Schrijf een test die mislukt en maak vervolgens de testpas. Controleer de code en de tests alleen wanneer de tests zijn geslaagd.
U krijgt nu aandacht voor de testcase waarin de fout is gedetecteerd. De stappen voor het reproduceren van de bug worden duidelijk beschreven in het werkitem testcase. U volgt de stappen en ontdekt dat de facturen correct worden weergegeven.
De oplossing inchecken
U controleert de vaste code en de eenheidstests. De status van de fout wordt automatisch ingesteld op Opgelost en de waarde Toegewezen aan wordt automatisch opnieuw toegewezen aan het lid van het testteam dat de fout heeft gedetecteerd. Dit teamlid controleert of de fout is opgelost en sluit het werkitem.
De oplossing inchecken
Kies Inchecken in TeamVerkenner op de pagina Mijn werk om de pagina Wijzigingen in behandeling te openen.
Controleer op de pagina Wijzigingen in behandeling het volgende:
Alle relevante wijzigingen worden vermeld in Opgenomen wijzigingen
Alle relevante werkitems worden vermeld in Gerelateerde werkitems.
Voer een opmerking in om uw team te helpen het doel van deze wijzigingen te begrijpen wanneer ze de versiebeheergeschiedenis van de gewijzigde bestanden en mappen bekijken.
Selecteer Inchecken.
Werk aan een taak hervatten
Werk aan de oorspronkelijke taak hervatten. U kunt snel weer aan de slag, omdat al uw codewijzigingen worden hersteld naar uw werkruimte, samen met belangrijke statussen, zoals geopende vensters, onderbrekingspunten en venstervariabelen bekijken.
Werk aan een taak hervatten
Selecteer in Teamverkenner op de pagina Mijn werk het oorspronkelijke werkitem onder Werk onder Onder OnderBroken werk en selecteer Hervatten.
Als u uw onderbroken werk wilt samenvoegen met wijzigingen in behandeling in uw werkruimte, kiest u Samenvoegen met Wordt uitgevoerd.
Wanneer u uw werk hervat, herstelt Visual Studio het volgende:
- Uw open oplossing
- Uw codewijzigingen
- De status en positie van geopende vensters
- Onderbrekingspunten
- Venstervariabelen en expressies bekijken
- Bladwijzers