Devops geliştiricisinin hayatındaki gün: çalışmayı askıya alma, bir hatayı düzeltme ve kod incelemesi gerçekleştirme

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

Visual Studio 2019 | Visual Studio 2022

Visual Studio My Work ve Code Review özellikleri, bağlamın bir iş parçacığından diğerine geçişini destekler. Ayrıca, ekip üyeleri kodda önerilen değişiklikler hakkında kolayca ileti alışverişi yapabilir. Bu makalede, devops geliştiricisinin hayatındaki Day öğreticisine devam eden şu özellikler gösterilmektedir: Kullanıcı hikayesi için yeni kod yazma.

Not

Visual Studio My Work ve Code Review özellikleri aşağıdaki sürümlerle kullanılabilir:

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

Bu öğreticide, başka bir iş öğesindeki ekip arkadaşlarınızı engelleyen bir hatayı hemen düzeltmek için geçerli bir görevdeki çalışmayı nasıl askıya alabileceğiniz açıklanır. Hatayı düzelttikten sonra, iş arkadaşlarınızdan düzeltmeyi gözden geçirmelerini isteyebilir ve gözden geçirme geçtikten sonra düzeltmeyi iade edebilir ve özgün görevdeki çalışmayı sürdürebilirsiniz.

Geçerli çalışmayı askıya alma

Kapsam öğesi üzerinde çalışırken, ekip arkadaşlarınızı engelleyen başka bir öğede hata olduğunu öğrenebilirsiniz. Bu, aşina olduğunuz bir alansa, hatayı düzeltmek ve hemen üzerinde çalışmak üzere kendinize atamak için bir görev oluşturabilirsiniz.

Yeni hata üzerinde çalışmaya başlamadan önce, geçerli çalışmanızın ekibin sunucusunda güvenli bir yerde ayarlandığından emin olmak istiyorsunuz. Visual Studio Ekip Gezgini'ndekiÇalışmam sayfasında Askıya Al'ı seçerek sunucuya kaydedin:

  • Kod, test ve diğer dosyalardaki değişiklikler de dahil olmak üzere yaptığınız tüm çalışmalar.

  • Çözümleri, pencereleri, kesme noktalarını, watch pencere değişkenlerini ve diğer Visual Studio durumu bitlerini açın.

Çalışma alanınız temiz olduğuna göre, yeni görevi Kullanılabilir Çalışma Öğeleri'ndenDevam Eden Çalışma'ya sürükleyin. Düzeltmeyi araştırmak ve yazmak için hazırsınız.

Not

Çalışma bağlamınız, Çalışmam sayfasında Devam Ediyor olarak gösterilen iş öğelerine bağlıdır. Askıya Al ve Sürdür'ü kullanarak farklı görevler arasında hızla geçiş yapabilirsiniz. Açık çözümleriniz ve dosyalarınız, kod değişiklikleriniz ve Visual Studio düzeniniz birlikte değiştirilir.

Geçerli çalışmayı askıya almak ve farklı bir görevde çalışmaya başlamak için

İş bağlamınızı değiştirin:

  1. Çalışmak istediğiniz projeye henüz bağlı değilseniz projeye bağlanın.

  2. Ekip Gezgini'ninGiriş sayfasında Çalışmam'ı seçin.

  3. Çalışmam sayfasındaki Devam Eden Çalışma bölümünde Askıya Al'ı seçin.

  4. Görüntülenen kutuda, isteğe bağlı olarak bu askıya alınan çalışma kümesini vermek istediğiniz adı değiştirin ve Askıya Al'ı seçin. Öğe, Askıya Alınan Çalışma'nın altında görünür.

    Bazı çalışmaları askıya alma işleminin ekran görüntüsü.

  5. Bir iş öğesini Kullanılabilir İş Öğeleri'ndenDevam Eden Çalışma'ya sürükleyin. İsterseniz, daha önce askıya aldığınız bir iş öğesine Askıya Alınmış Çalışma'dan sürükleyerek geçiş yapabilirsiniz.

    Kendinize atamak istediğiniz iş öğesi Kullanılabilir İş Öğeleri altında görünmüyorsa şunları yapabilirsiniz:

    • Yeni'ye tıklayarak yeni bir görev veya başka bir iş öğesi oluşturun.
    • Sorguyu Aç'ı seçerek farklı bir sorgu seçin.

İpucu

Devam Ediyor İş öğeleri, geçerli kod değişikliklerinize ve Visual Studio durumunun bağlantısıdır. Visual Studio'yu çalışmanızı düzenlemenize yardımcı olması için, bir görevden diğerine geçtiğinizde uygun öğelerin Devam Ediyor Çalışma durumunda olduğundan emin olun.

Hatayı araştırma

Yeni hatayı açın ve açıklamayı okuyun. Bu örnekte, test ekibinin bir üyesi tarafından yapılan açıklama, ücretli bir faturanın bazen hatalı bir şekilde ödenmemiş olarak işaretlendiğini belirtir. Hata iş öğesine bir laboratuvar ortamı anlık görüntüsü eklenir. Testin çalıştırıldığı sanal makineyi (VM) açar, yanlış faturayı görür ve IntelliTrace günlüğünde geri adım atabilirsiniz. Hatayı aşağıdaki yönteme kadar izleyebilirsiniz:

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

IntelliTrace günlüğünde, bazen yöntemin false döndürdüğünü görürsünüz çünkü parametreler çok az miktarda farklılık gösterir. Bu tür yuvarlama hatalarının kayan nokta aritmetiğinde kaçınılmaz olduğunu ve kayan nokta sayılarını eşitlik için test etmek için kötü bir uygulama olduğunu biliyorsunuz.

Hatayı göstermek için testleri artırma

Bir hata bulunduğunda, birim testlerinde bir boşluk olduğunu veya testin kullanıcıların gerçek gereksinimlerini karşılamadığını gösterir. Bu nedenle, hatayı düzeltmeden önce bu hatanın varlığını gösteren bir test ekleyin:

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

Testi çalıştırın ve beklendiği gibi başarısız olur.

Eşit testin başarısız olduğunu gösteren Birim Testi Gezgini'nin ekran görüntüsü.

Testlerin başarılı olmasını sağlama

Kodu düzeltin:

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 şimdi geçer:

Eşittir testinin geçirildiğini gösteren Birim Testi Gezgini'nin ekran görüntüsü.

Kod gözden geçirme isteğinde bulunma

Hatayla ilgili düzeltmenizden memnun olduğunuzda, çalışmanızı henüz iade etmeyin. Ekipler, genel kod kalitesini artırmak ve daha fazla hata oluşturma riskini azaltmak için kod incelemelerini kullanır. Ekip arkadaşlarınızdan kod incelemeleri istemek için Takım Gezgini'ni kullanın.

Kod gözden geçirme isteğinde bulunmak için

  1. Ekip Gezgini'ndekiÇalışmam sayfasında, Devam Eden Çalışma'nın altında Gözden Geçirme İste'yi seçin.

    Yeni Kod Gözden Geçirme sayfası görüntülenir.

    Kod gözden geçirme isteği sayfasını gösteren ekran görüntüsü.

    • Gözden geçirenin adını girin alanında, bir veya daha fazla gözden geçiren belirtin ve her seçimden sonra Enter tuşuna basın.
    • Sonraki alanda, isterseniz gözden geçirmenin adını değiştirin.
    • Sonraki alanda doğru alan yolunun göründüğünden emin olun.
    • Sonraki alana isteğe bağlı bir açıklama yazın.
  2. İstek Gönder'i seçin.

Gözden geçirenlere istek e-postayla bildirilir.

Ayrıca askıya alınan çalışmanın, raf kümesinin veya değişiklik kümesinin kod gözden geçirilmesini isteyebilirsiniz. Değişiklik kümelerinin listesini görmek için Kaynak Denetim Gezgini'ni açın ve Geçmiş düğmesini seçin.

Kod gözden geçirmesi yapma

Gözden geçiren, kod gözden geçirme isteğini kabul edebilir. Gözden geçiren kodu gözden geçirir, dosya ve kod bloğu düzeylerinde bazı açıklamalar yazar ve ardından kod incelemesini size geri gönderir. Kodu gözden geçiremeyecek kadar meşgul olan istenen gözden geçiren, gözden geçirmeyi reddedebilir.

Yorumlarda gözden geçiren, testin yanlış olduğuna işaret etti. İzin verilebilen hata, sabit bir miktar değil, giriş değerlerinin belirli bir bölümü olmalıdır. Bu nedenle test, hatayı değeriyle çarpmalıdır.

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

İpucu

Ekip üyeleri, testleri tartışma odağı olarak kullanır. Testler doğru ve yeterliyse kod da olacaktır. Koddan farklı olarak, her test ayrı bir durumu temsil eder. Bu nedenle testler genellikle koddan daha kolay tartışılır.

Kod gözden geçirmesi yapmak için

  1. Takım Gezgini'ndekiÇalışmam sayfasında, Kod İncelemeleri bölümünde kod gözden geçirmesine sağ tıklayın ve Aç'ı seçin.

    Kod Gözden Geçirme sayfası görüntülenir.

    Kod Gözden Geçirme sayfasının ekran görüntüsü.

  2. Kod Gözden Geçirme sayfasında şunları yapabilirsiniz:

    • Kod gözden geçirme isteğine başka gözden geçirenler eklemek için Gözden Geçiren Ekle'yi seçin.

    • Bu iş öğesi için güncelleştirilen dosyalarda yapılan değişiklikleri görmek için her bir dosya bağlantısını seçin.

    • Değişiklikleri yazar ve diğer gözden geçirenlerle tartışmak için Açıklamalar'ı kullanın.

      Açıklama eklemek için:

      • Gözden geçirmeye genel bir açıklama eklemek için Genel Açıklama Ekle'yi seçin.
      • Bir dosyayı görüntülerken bir kod satırı veya kod bloğu seçin, sağ tıklayın ve Açıklama ekle'yi seçin.

      Her açıklamayı ekledikten sonra Kaydet'i seçin veya Ctrl+Enter tuşlarına basın.

  3. Açıklama girmeyi bitirdiğinizde, katkılarınızı yazarın ve diğer gözden geçirenlerin görebilmesi için Açıklama Gönder'i seçin.

Kod gözden geçirmesine yanıt verme

Gözden geçirenlerden kod incelemesini alır ve yanıtlarsınız. Siz ve gözden geçirenler istediğiniz sıklıkta yorum alışverişi yapabilirsiniz. İncelemeyi kapattığınızda sona erer.

Kod gözden geçirmesine yanıt vermek için

  1. Ekip Gezgini'ndekiÇalışmam sayfasında Kod İncelemeleri bölümüne gidin ve isteğe çift tıklayın veya isteğe sağ tıklayıp Aç'ı seçin.

    Kod Gözden Geçirme sayfası görüntülenir.

    Kod gözden geçirmesine yanıt verme işleminin ekran görüntüsü.

  2. Açıklamalar bölümünde açıklamaları okuyun ve gerektiğinde yanıtlayın. Açıklamayı yanıtlamak için Yanıtla'yı seçin, görüntülenen kutuya açıklamanızı girin ve ardından Tamam'ı seçin.

  3. Bir dosyayı görüntülemek ve açıklama içeren kod bloklarını görmek veya bir dosyayı düzenlemek veya açıklama eklemek için Dosyalar alt bölümüne gidin. Dosyaya sağ tıklayın ve aşağıdakilerden birini seçin:

    • Karşılaştır (Salt Okunur)
    • Yerel Dosyayı Düzenle veya
    • Dosya Açıklaması Ekle

    Açıklamanın ele alındığını belirtmek için açıklamanın yanındaki onay kutusunu da seçebilirsiniz.

  4. Açıklamalarınızı göndermek için Açıklama Gönder'i seçin.

  5. Siz ve diğer gözden geçirenler birbirinizin açıklamalarına yanıt vermeyi bitirdiğinizde ve incelemeyi kapatmaya hazır olduğunuzda Gözden Geçirmeyi Kapat'ı seçin ve ardından şunları seçin:

    • İncelemenin tamamlandığını belirtmek için tamamlandı veya
    • gözden geçirmeyi iptal ettiğinizi belirtmek için bırakın.

Testi ve kodu düzeltme

Gözden geçirme yorumlarını okuduktan sonra birim testinizi önerilen şekilde düzeltebilirsiniz. Test şimdi başarısız oluyor. Bu, kodun henüz doğru olmadığını gösterir.

Kodu düzeltirsiniz:

/// <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 bir kez daha geçer.

İpucu

Bir hatayı düzeltmek için kod geliştirme ile aynı uygulamayı izleyin. Başarısız olan bir test yazın ve test geçişini yapın. Kodu ve testleri yalnızca testler geçtiğinde denetleyin.

Şimdi dikkatinizi hatanın bulunduğu test durumuna çevirebilirsiniz. Hatayı yeniden oluşturma adımları test çalışması iş öğesinde açıkça açıklanmıştır. Adımları izler ve faturaların doğru listelendiğini keşfedersiniz.

Düzeltmeyi iade edin

Sabit kodu ve birim testlerini iade edin. Hatanın durumu otomatik olarak Çözüldü olarak ayarlanır ve Atanan değeri, hatayı bulayan test ekibinin üyesine otomatik olarak yeniden atanır. Bu ekip üyesi hatanın düzeltildiğini doğrular ve iş öğesini kapatır.

Düzeltmeyi iade etmek için

  1. Ekip Gezgini'ndekiÇalışmam sayfasında, Bekleyen Değişiklikler sayfasını açmak için Kontrol seçin.

    Hatayı düzeltmek için bir güncelleştirmeyi denetlemenin ekran görüntüsü.

  2. Bekleyen Değişiklikler sayfasında şunları yaptığınızdan emin olun:

    • Tüm ilgili değişiklikler Dahil Edilen Değişiklikler'de listelenir

    • Tüm ilgili iş öğeleri İlgili İş Öğeleri'nde listelenir.

  3. Ekibinizin değiştirilen dosya ve klasörlerin sürüm denetimi geçmişine baktığında bu değişikliklerin amacını anlamasına yardımcı olmak için bir Açıklama girin.

  4. Kontrol'ı seçin.

Görevdeki çalışmayı sürdürme

Özgün göreviniz üzerinde çalışmaya devam edin. Tüm kod değişiklikleriniz açık pencereler, kesme noktaları ve watch pencere değişkenleri gibi önemli durum bitleriyle birlikte çalışma alanınıza geri yüklendiğinden işe hızla dönebilirsiniz.

Bir görevdeki çalışmayı sürdürmek için

  • Ekip Gezgini'ndekiÇalışmam sayfasında, Askıya Alınan Çalışma'nın altında özgün iş öğenizi seçin ve Sürdür'ü seçin.

    Görevi devam ettirin ekran görüntüsü.

    Öte yandan, askıya alınan çalışmanızı çalışma alanınızdaki bekleyen değişikliklerle birleştirmek istiyorsanız, Devam Edenle Birleştir'i seçin.

Çalışmanızı sürdürürken Visual Studio şunları geri yükler:

  • Açık çözümünüz
  • Kodunuz değişir
  • Açık pencerelerin durumu ve konumu
  • Kesme noktaları
  • Pencere değişkenlerini ve ifadelerini izleme
  • Yer işaretleri