Udostępnij za pośrednictwem


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 programu Visual Studio My Work i Code Review obsługują przełączanie kontekstu z jednego wątku do innego. 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 dnia w życiu dewelopera devops: 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ć błąd zatrzymujący zespół 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ć je sobie, aby od razu nad nim 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 Explorerna stronie My Work 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 obserwacji i inne elementy stanu programu Visual Studio.

Teraz, gdy obszar roboczy jest czysty, przeciągnij nowe zadanie z Dostępne elementy robocze do Praca w toku. Jesteś gotowy do przeprowadzenia badań i napisania poprawki.

Uwaga

Kontekst roboczy jest połączony z elementami roboczymi wyświetlanymi jako W toku na stronie Moja Praca. Za pomocą wstrzymywanie i wznawianiemożna szybko przełączać się między różnymi zadaniami. Otwarte rozwiązania i pliki, zmiany kodu oraz układ Visual Studio są przełączane jednocześnie.

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 strona główna programu Team Explorerwybierz pozycję My Work.

  3. Na stronie My Work w sekcji In Progress Work 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 sekcji Wstrzymana praca.

    Zrzut ekranu przedstawiający wstrzymanie niektórych prac.

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

    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.

Wskazówka

Elementy pracy w toku są połączone z bieżącymi zmianami kodu i stanem programu Visual Studio. Aby umożliwić programowi Visual Studio organizowanie pracy, upewnij się, że odpowiednie elementy znajdują się w stanie Praca w toku podczas przełączania się z jednego zadania na drugie.

Zbadaj usterkę

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

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.

Rozszerz testy, aby pokazać błąd

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, a zakończy się on niepowodzeniem, jak się spodziewano.

Zrzut ekranu Eksploratora Testów Jednostkowych pokazujący niepowodzenie testu dla operacji porównania.

Spraw, aby testy przeszły pomyślnie

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

Test teraz przechodzi pomyślnie.

Zrzut ekranu Eksploratora Testów Jednostkowych pokazujący zaliczony test równości.

Żądanie przeglądu kodu

Gdy będziesz zadowolony z poprawki usterki, jeszcze nie zatwierdzaj 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 Team Explorer, aby zażądać przeglądów kodu od kolegów z zespołu.

Aby zażądać przeglądu kodu

  1. W programie Team Explorerna stronie My Work w obszarze In Progress Workwybierz pozycję Request Review.

    Zostanie wyświetlona strona Nowa recenzja kodu.

    Zrzut ekranu przedstawiający stronę z prośbą o przegląd kodu.

    • W polu Wprowadź nazwę recenzenta, określ jednego lub więcej recenzentów i naciśnij Enter po każdym wyborze.
    • 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ółkowego lub zestawu zmian. Aby wyświetlić listę zestawów zmian, otwórz Eksplorator 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ślonym 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

Wskazówka

Członkowie zespołu używają testów jako punktu wyjścia do dyskusji. Jeśli testy są poprawne i wystarczające, to również kod będzie poprawny. 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 My Work w programie Team Explorerkliknij prawym przyciskiem myszy recenzję kodu w sekcji Przeglądy kodu i wybierz pozycję Otwórz.

    Pojawia się strona przeglądu kodu .

    zrzut ekranu strony przeglądu kodu.

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

    • Wybierz Dodaj recenzenta, aby móc 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 Komentarze, żeby omówić zmiany z autorem i innymi recenzentami.

      Aby dodać komentarze:

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

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

  3. Po zakończeniu wprowadzania komentarzy wybierz pozycję Wyślij komentarze, aby twój wkład był widoczny dla autora i innych recenzentów.

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ę, gdy go zamkniesz.

Aby odpowiedzieć na przegląd kodu

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

    Wyświetli się strona przeglądu kodu .

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

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

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

    • Porównaj (Read-Only)
    • Edytowanie pliku lokalnegolub
    • 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 swoje wzajemne komentarze i jesteś gotowy, aby zamknąć recenzję, wybierz pozycję Zamknij recenzję, a następnie wybierz:

    • Wypełnij, aby oznaczyć, że przegląd został ukończony lub
    • Anuluj, aby wskazać, że anulujesz recenzję.

Naprawianie testu i kodu

Po przeczytaniu komentarzy do przeglądu możesz naprawić test jednostkowy zgodnie z sugestiami. 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 przechodzi pomyślnie.

Wskazówka

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 popraw go, aby przeszedł. Zatwierdź 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.

Zarejestruj poprawkę

Zaewidencjonujesz stały kod i testy jednostkowe. Stan usterki jest automatycznie ustawiany na Rozwiązane, a wartość Przypisana 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 zatwierdzić poprawkę

  1. Na Team Explorer na stronie My Work wybierz pozycję Zaewidencjonuj, 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ędnione zmiany

    • Wszystkie odpowiednie elementy robocze są wymienione w powiązane elementy robocze.

  3. Dodaj komentarz , aby pomóc zespołowi zrozumieć cel tych zmian podczas przeglądania historii wersji zmienionych plików i folderów.

  4. Wybierz pozycję Zamelduj się.

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 Explorerna stronie My Work wybierz pierwotny element roboczy w sekcji Wstrzymana praca i kliknij Wznów.

    zrzut ekranu przedstawiający wznawianie zadania.

    Jeśli chcesz też scalić wstrzymaną pracę z oczekującymi zmianami w obszarze roboczym, wybierz 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