Dzień w życiu dewelopera devops: wstrzymanie pracy, naprawienie usterki i przeprowadzenie przeglądu kodu

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Funkcje Visual Studio My Work and Code Review obsługują przełączanie kontekstu z jednego wątku pracy na inny. Ponadto członkowie zespołu mogą łatwo wymieniać komunikaty dotyczące proponowanych zmian w kodzie. W tym artykule przedstawiono te funkcje, kontynuując samouczek z day in the life of a devops developer: Write new code for a user story (Pisanie nowego kodu dla historii użytkownika).

Uwaga

Funkcje przeglądu mojego pracy i kodu w programie Visual Studio są dostępne w następujących wersjach:

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

W tym samouczku opisano, jak można wstrzymać pracę nad bieżącym zadaniem, aby natychmiast naprawić usterkę blokującą członków zespołu w innym elemencie roboczym. Po naprawieniu usterki możesz poprosić współpracowników o przejrzenie poprawki, a po zakończeniu przeglądu zaewidencjonowanie poprawki i wznowienie pracy nad oryginalnym zadaniem.

Wstrzymaj bieżącą pracę

Podczas pracy nad elementem listy prac możesz dowiedzieć się więcej o błędzie w innym elemencie, który blokuje kolegów z drużyny. Jeśli jest to obszar, który znasz, możesz utworzyć zadanie, aby naprawić usterkę i przypisać ją do siebie, aby natychmiast pracować.

Przed rozpoczęciem pracy nad nową usterką należy upewnić się, że bieżąca praca jest odkładana w bezpiecznym miejscu na serwerze zespołu. W programie Visual Studio Team Explorer na stronie Moja praca wybierz pozycję Wstrzymaj , aby zapisać na serwerze:

  • Wszystkie wykonane prace, w tym zmiany w kodzie, testach i innych plikach.

  • Otwórz rozwiązania, okna, punkty przerwania, zmienne okna obserwowanego i inne bity stanu programu Visual Studio.

Teraz, gdy obszar roboczy jest czysty, przeciągnij nowe zadanie z obszaru Dostępne elementy robocze do obszaru Praca w toku. Wszystko jest gotowe do badań i pisania poprawki.

Uwaga

Kontekst roboczy jest połączony z elementami roboczymi wyświetlanymi jako W toku na stronie Moja praca . Za pomocą funkcji Wstrzymywanie i wznawianie można szybko przełączać się między różnymi zadaniami. Otwarte rozwiązania i pliki, zmiany kodu i układ programu Visual Studio są przełączane razem.

Aby wstrzymać bieżącą pracę i rozpocząć pracę nad innym zadaniem

Przełącz kontekst pracy:

  1. Jeśli nie masz jeszcze połączenia z projektem, w którym chcesz pracować, połącz się z projektem.

  2. Na stronie głównej programu Team Explorer wybierz pozycję Moja praca.

  3. Na stronie Moja praca w sekcji Praca w toku wybierz pozycję Wstrzymaj.

  4. W wyświetlonym polu opcjonalnie zmień nazwę, którą chcesz nadać temu zestawowi wstrzymanej pracy, a następnie wybierz pozycję Wstrzymaj. Element jest wyświetlany w obszarze Wstrzymana praca.

    Zrzut ekranu przedstawiający zawieszanie niektórych prac.

  5. Przeciągnij element roboczy z obszaru Dostępne elementy robocze do obszaru Praca w toku. Możesz też przełączyć się na element roboczy, który został wcześniej zawieszony, przeciągając go z obszaru Wstrzymana praca.

    Jeśli element roboczy, który chcesz przypisać samodzielnie, nie jest wyświetlany w obszarze Dostępne elementy robocze, możesz:

    • Utwórz nowe zadanie lub inny element roboczy, wybierając pozycję Nowy.
    • Wybierz inne zapytanie, wybierając pozycję Otwórz zapytanie.

Napiwek

Elementy robocze w toku łączą się ze zmianami bieżącego kodu i stanem programu Visual Studio. Aby umożliwić programowi Visual Studio organizowanie pracy, upewnij się, że odpowiednie elementy są w stanie Praca w toku po przełączeniu się z jednego zadania na inne.

Badanie usterki

Otwórz nową usterkę i przeczytaj opis. W tym przykładzie opis przez członka zespołu testowego stwierdza, że płatna faktura jest czasami niepoprawnie oflagowana jako niezapłacona. Migawka środowiska laboratoryjnego jest dołączona do elementu roboczego usterki. Otwórz maszynę wirtualną, na której został uruchomiony test, zobaczysz nieprawidłową fakturę i wróć do dziennika IntelliTrace. Możesz prześledzić błąd do następującej metody:

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

W dzienniku IntelliTrace widać, że czasami metoda zwraca wartość false, ponieważ parametry różnią się bardzo małą ilością. Wiesz, że błędy zaokrąglania tego rodzaju są nieuniknione w arytmetyce zmiennoprzecinkowej i że jest to złe rozwiązanie do testowania liczb zmiennoprzecinkowych pod kątem równości.

Rozszerzanie testów w celu wyświetlenia błędu

Po znalezieniu usterki widać, że wystąpiła luka w testach jednostkowych lub że test nie był zgodny z rzeczywistymi potrzebami użytkowników. W związku z tym przed naprawieniem usterki dodaj test, który pokazuje obecność tego błędu:

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

Uruchom test i zakończy się niepowodzeniem zgodnie z oczekiwaniami.

Zrzut ekranu przedstawiający eksploratora testów jednostkowych z wyświetlonym testem, który zakończył się niepowodzeniem dla równego.

Uśmierć testy

Napraw kod:

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

Teraz test zakończy się pomyślnie:

Zrzut ekranu eksploratora testów jednostkowych przedstawiający test z powodzeniem dla równego.

Żądanie przeglądu kodu

Jeśli poprawka dotycząca usterki jest satysfakcjonująca, nie zaewidencjonuj jeszcze swojej pracy. Zespoły używają przeglądów kodu, aby zwiększyć ogólną jakość kodu i zmniejszyć ryzyko tworzenia większej liczby usterek. Użyj programu Team Explorer , aby poprosić o przeglądy kodu od kolegów z zespołu.

Aby zażądać przeglądu kodu

  1. W programie Team Explorer na stronie Moja praca w obszarze Praca w toku wybierz pozycję Żądanie przeglądu.

    Zostanie wyświetlona strona Nowa recenzja kodu.

    Zrzut ekranu przedstawiający stronę Żądania przeglądu kodu.

    • W polu Wprowadź nazwę recenzenta określ co najmniej jednego recenzenta i naciśnij klawisz Enter po każdym zaznaczeniu.
    • W następnym polu zmień nazwę przeglądu, jeśli chcesz.
    • W następnym polu upewnij się, że jest wyświetlana poprawna ścieżka obszaru.
    • W następnym polu wpisz opcjonalny opis.
  2. Wybierz pozycję Prześlij żądanie.

Recenzenci są powiadamiani o żądaniu pocztą e-mail.

Możesz również zażądać przeglądu kodu zawieszonej pracy, zestawu półek lub zestawu zmian. Aby wyświetlić listę zestawów zmian, otwórz Eksploratora kontroli źródła i wybierz przycisk Historia .

Przegląd kodu

Recenzent może zaakceptować żądanie przeglądu kodu. Recenzent przegląda kod, zapisuje komentarze na poziomach plików i bloków kodu, a następnie wysyła przegląd kodu z powrotem do Ciebie. Poproszony recenzent, który jest zbyt zajęty, aby przejrzeć kod, może odrzucić recenzję.

W komentarzach recenzent zwraca uwagę, że test jest nieprawidłowy. Dozwolony błąd powinien być określoną ułamkiem wartości wejściowych, a nie stałą ilością. Dlatego test powinien pomnożyć błąd przez wartość .

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

Napiwek

Członkowie zespołu używają testów jako fokusu do dyskusji. Jeśli testy są poprawne i wystarczające, będzie również kod. W przeciwieństwie do kodu każdy test reprezentuje oddzielny przypadek. Z tego powodu testy są często łatwiejsze do omówienia niż kod.

Aby przeprowadzić przegląd kodu

  1. Na stronie Moja praca w programie Team Explorer kliknij prawym przyciskiem myszy przegląd kodu w sekcji Przeglądy kodu i wybierz polecenie Otwórz.

    Zostanie wyświetlona strona Przegląd kodu.

    Zrzut ekranu przedstawiający stronę Przegląd kodu.

  2. Na stronie Przegląd kodu można wykonywać następujące czynności:

    • Wybierz pozycję Dodaj recenzenta , aby dodać innych recenzentów do żądania przeglądu kodu.

    • Wybierz każdy link do pliku, aby wyświetlić zmiany w plikach, które zostały zaktualizowane dla tego elementu roboczego.

    • Użyj komentarzy , aby omówić zmiany z autorem i innymi recenzentami.

      Aby dodać komentarze:

      • Wybierz pozycję Dodaj ogólny komentarz , aby dodać ogólny komentarz do przeglądu.
      • Podczas wyświetlania pliku wybierz wiersz lub blok kodu, kliknij prawym przyciskiem myszy i wybierz pozycję Dodaj komentarz.

      Po dodaniu każdego komentarza wybierz pozycję Zapisz lub naciśnij klawisze Ctrl+Enter.

  3. Po zakończeniu wprowadzania komentarzy wybierz pozycję Wyślij komentarze , aby udostępnić współautorowi i innym recenzentom.

Odpowiadanie na przegląd kodu

Otrzymasz recenzję kodu i odpowiesz na nie od recenzentów. Ty i recenzenci mogą wymieniać komentarze tak często, jak chcesz. Przegląd kończy się po zamknięciu.

Aby odpowiedzieć na przegląd kodu

  1. W programie Team Explorer na stronie Moja praca przejdź do sekcji Przeglądy kodu i kliknij dwukrotnie żądanie lub kliknij prawym przyciskiem myszy żądanie i wybierz polecenie Otwórz.

    Zostanie wyświetlona strona Przegląd kodu.

    Zrzut ekranu przedstawiający reagowanie na przegląd kodu.

  2. W sekcji Komentarze przeczytaj komentarze i odpowiedz na nie zgodnie z potrzebami. Aby odpowiedzieć na komentarz, wybierz pozycję Odpowiedz, wprowadź komentarz w wyświetlonym polu, a następnie wybierz przycisk OK.

  3. Aby wyświetlić plik i wyświetlić bloki kodu z komentarzami lub edytować lub komentować plik, przejdź do podsekcji Pliki . Kliknij plik prawym przyciskiem myszy i wybierz jedną z następujących opcji:

    • Porównanie (tylko do odczytu)
    • Edytuj plik lokalny lub
    • Dodaj komentarz do pliku

    Możesz również zaznaczyć pole wyboru obok komentarza, aby wskazać, że komentarz został rozwiązany.

  4. Aby wysłać komentarze, wybierz pozycję Wyślij komentarze.

  5. Gdy ty i inni recenzenci zakończą odpowiadanie na komentarze siebie i wszystko będzie gotowe do zamknięcia przeglądu, wybierz pozycję Zamknij przegląd, a następnie wybierz:

    • Ukończ , aby wskazać, że przegląd został ukończony lub
    • Porzucanie , aby wskazać, że anulujesz recenzję.

Naprawianie testu i kodu

Po przeczytaniu komentarzy do przeglądu możesz naprawić test jednostkowy zgodnie z sugestią. Test kończy się teraz niepowodzeniem. Pokazuje to, że kod nie jest jeszcze poprawny.

Naprawiono kod:

/// <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 po raz kolejny przejdzie pomyślnie.

Napiwek

Aby naprawić usterkę, postępuj zgodnie z tą samą praktyką co podczas opracowywania kodu. Napisz test, który zakończy się niepowodzeniem, a następnie przetestuj test. Zaewidencjonuj kod i testy tylko wtedy, gdy testy przejdą.

Teraz zwracasz uwagę na przypadek testowy, w którym wykryto usterkę. Kroki odtworzenia usterki zostały jasno opisane w elemencie roboczym przypadku testowego. Wykonaj kroki i dowiesz się, że faktury są poprawnie wyświetlane.

Zaewidencjonuj poprawkę

Zaewidencjonujesz stały kod i testy jednostkowe. Stan usterki jest automatycznie ustawiany na Rozwiązane, a wartość Przypisano do jest automatycznie przypisywana do członka zespołu testowego, który wykrył usterkę. Ten członek zespołu sprawdzi, czy usterka została naprawiona i zamknie element roboczy.

Aby zaewidencjonować poprawkę

  1. W programie Team Explorer na stronie Moja praca wybierz pozycję Synchronizacja, aby otworzyć stronę Oczekujące zmiany.

    Zrzut ekranu przedstawiający sprawdzanie aktualizacji w celu naprawienia usterki.

  2. Na stronie Oczekujące zmiany upewnij się, że:

    • Wszystkie istotne zmiany są wymienione w uwzględnionych zmianach

    • Wszystkie odpowiednie elementy robocze są wymienione w powiązanych elementach roboczych.

  3. Wprowadź komentarz, aby ułatwić zespołowi zrozumienie przeznaczenia tych zmian podczas analizowania historii kontroli wersji zmienionych plików i folderów.

  4. Wybierz pozycję Synchronizacja.

Wznów pracę nad zadaniem

Wznów pracę nad oryginalnym zadaniem. Możesz szybko wrócić do pracy, ponieważ wszystkie zmiany kodu zostaną przywrócone do obszaru roboczego wraz z ważnymi fragmentami stanu, takimi jak otwarte okna, punkty przerwania i zmienne okna obserwowanego.

Aby wznowić pracę nad zadaniem

  • W programie Team Explorer na stronie Moja praca wybierz oryginalny element roboczy w obszarze Wstrzymana praca i wybierz pozycję Wznów.

    Zrzut ekranu przedstawiający wznawianie zadania.

    Możesz też scalić wstrzymaną pracę z oczekującymi zmianami w obszarze roboczym, wybierz pozycję Scal z w toku.

Po wznowieniu pracy program Visual Studio przywraca:

  • Otwarte rozwiązanie
  • Zmiany kodu
  • Stan i położenie otwartych okien
  • Punkty przerwania
  • Obserwowanie zmiennych i wyrażeń okna
  • Zakładki