DevOps geliştiricisinin yaşam süresi: işi askıya alma, bir hatayı çözme ve kod incelemesi yürütme
Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015 | VS 2017 | VS 2015 | VS 2013
çalışma bağlamını bir iş parçacığından diğerine geçirmek için güçlü bir tek tıklama yolu Visual Studio Premium ve Team Foundation Server ile Visual Studio Ultimate mevcuttur. Ayrıca, takım üyeleri kodda önerilen değişikliklerle ilgili iletileri kolayca değiş tokuş edebilir. Bu konuda, bir gün boyunca kurgusal çevik ekibin üyelerini takip eden bir öğreticiye devam eden bu özellikler gösterilmektedir.
Peter, bir biriktirme öğesi görevinin yerine getirilmesi için bazı kod yazma meşguldü. Ancak, iş arkadaşları onları engelleyen bir hata bulmuştur ve hemen düzeltilmesi istemektedir. Yaptığı işi askıya alır ve hatayı düzeltir. Julia 'nın bu çözümü gözden geçirmesini ve gözden geçirme işleminden sonra, düzeltilmesi ve özgün görevindeki çalışmayı devam etmesini ister.
Not
Peter 'in kullandığı çalışmam ve kod inceleme özellikleri yalnızca Visual Studio Premium ve Visual Studio Ultimate kullanılabilir.
Geçerli işi askıya al
Peter, bir biriktirme listesi öğesinde çalıştığından, Julia tarafından bloke olan bir hatayı tartışın. Bu, Peter 'ın alışkın olduğu bir alandır. bu nedenle, hatayı düzeltemedi ve onu hımself 'e atar. Düzeltilme üzerinde çalışmaya hemen başlamak ister.
Yeni hata üzerinde çalışmaya başlamadan önce Peter, geçerli işinin ekibin sunucusunda güvenli bir yerde ayarlandığından emin olmak istiyor. Iş alanım sayfasında, Peter kaydetmek Için askıya al (Team Foundation Server) öğesini seçer:
Kod, test ve diğer dosyalardaki değişiklikler dahil olmak üzere yaptığı tüm işler.
çözümler, pencereler, kesme noktaları, izleme penceresi değişkenleri ve diğer Visual Studio durum bitlerini açın.
Çalışma alanı temizleyene kadar, Peter yeni görevi kullanılabilir Iş öğelerindendevam eden işe sürükliyor. Araştırmaya ve bu hatayı yazmaya hazırlanın.
Not
Çalışma içeriğiniz, çalışmam sayfasında devam eden olarak görünen iş öğelerine bağlanır. Askıya al ve Duraklat ' ıkullanarak, farklı görevler arasında hızlıca geçiş yapabilirsiniz. açık çözümleriniz ve dosyalarınız, kod değişiklikleriniz ve Visual Studio düzeni birlikte değiştirilir.
Geçerli işi askıya almak ve farklı bir görevde çalışmaya başlamak için

Bağlan: Üzerinde çalışmak istediğiniz projeye zaten bağlı değilseniz, projeye bağlanın:
- Takım Gezgini,
giriş' i seçin ve sonra çalışmam
seçin.
- Takım Gezgini,
Geçerli görevinizi askıya alın :
Devam eden iş bölümünde beklet' i seçin.
Görüntülenen kutuda, bu askıya alınmış çalışma kümesine vermek istediğiniz adı belirtin ve ardından beklet düğmesini seçin. Varsayılan ad şu anda devam eden iş öğesidir.
Yeni bir görev, hata veya diğer iş öğesi üzerinde iş başlatın:
Bir iş öğesini seçmeden önce şunları yapmak isteyebilirsiniz:
Kullanılabilir Iş öğelerialtında Yeni ' ye tıklayarak yeni bir görev veya başka bir iş öğesi oluşturun; veya
Kullanılabilir Iş öğelerialtında farklı bir sorgu seçin.
Kullanılabilir Iş öğelerinden bir Iş öğesini devam etmekte olaniş öğesine sürükleyin.
Alternatif olarak, askıya alınmış çalışmaaltına sürükleyerek daha önce askıya aldığınız bir iş öğesine geçebilirsiniz.
İpucu
şu anda devam eden iş öğeleri geçerli kod değişiklerinizin ve Visual Studio durumunun bağlantısına bağlanır. Visual Studio çalışmanızı düzenlemenize yardımcı olması için, bir görevden diğerine geçiş yaparken uygun öğelerin devam ediyor durumunda olduğundan emin olun.
Hatayı araştır
Peter açılır ve hata iş öğesini okur. Test takımının bir üyesi tarafından yazılan açıklamaya göre, ücretli bir fatura bazen yanlışlıkla ücretsiz olarak işaretlenir. Hata iş öğesine eklenmiş bir laboratuar ortamı anlık görüntüsü var. Peter, testin çalıştırıldığı sanal makineleri açabilir, yanlış faturaya ve IntelliTrace günlüğünden geri dönerek ilerleyebiliyor. Hatayı aşağıdaki yönteme izluyor:
public class LocalMath
{
public static bool EqualTo(double a, double b)
{
return a == b;
}
Peter, IntelliTrace günlüğünden bazen yöntemin yanlış döndürdüğünden, parametreler son derece küçük bir miktarda farklılık gösterdiğinden. Peter, bu türden yuvarlama hatalarının kayan nokta aritmetiği açısından kaçınılmaz olduğunu ve kayan nokta numaralarını eşitlik için test etmek için kötü bir uygulama olduğunu bilir.
Hatayı göstermek için testleri artırmak
Bir hata bulunduğunda, birim testlerinde bir boşluk olduğunu veya testin, kullanıcıların gerçek gereksinimleriyle eşleşmemesi olduğunu gösterir. Bu nedenle, hatayı düzeltmeden önce, Peter bu hatanın varlığını gösteren bir test ekler.
// Added 2012-02-02 for bug 654321:
/// <summary>
/// Make sure that number equality test allows for
/// small rounding errors.
/// </summary>
[TestMethod]
public void TestDoublesEqual()
{
// We 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ır ve beklendiği gibi başarısız olur.

Testleri başarılı yap
Peter kodu düzeltir:
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;
}
Şimdi test geçirilir:

Kod incelemesi isteme
Peter, hatanın düzeltmesine karşı karşılandı, ancak işini henüz iade etmiyor. Ekibi, genel kod kalitesini artırmak ve daha fazla hata oluşturma riskini azaltmak için kod İncelemeleri kullanır. bu nedenle Peter, arkadaşlarınızla Julia ve adam 'dan bir kod incelemesi istemek için Takım Gezgini kullanır.
Kod incelemesi istemek için

Takım Gezgini, çalışmam sayfasında, Gözden geçirme iste' yi seçin.
Yeni kod incelemesi sayfası görüntülenir.
Bir veya daha fazla gözden geçiren belirtin.
İncelemenin adını belirtin.
Alan yolunu belirtin.
Gözden geçirenlere bir açıklama belirtin.Isteği gönder' i seçin.
Gözden geçirenler isteği e-posta ile bilgilendirilir.
Ayrıca, askıya alınmış iş, raf kümesi veya değişiklik kümesi için kod incelemesi de isteyebilirsiniz. Değişiklik kümelerinin bir listesini görmek için Kaynak Denetim Gezgini açın ve geçmiş düğmesini seçin.
Kod incelemesini kabul etme veya reddetme
Julia, kod incelemesi isteğini alır ve kabul eder. Kodu inceler, dosya ve kod bloğu düzeylerinde bazı açıklamalar yazar ve ardından kod incelemesini kemal 'e geri gönderir. Adam, kodu gözden geçirmek için çok meşgul ve reddederse.
Açıklamalarında, Julia testin yanlış olduğunu gösterir. İzin verilen hata, giriş değerlerinin sabit bir sayı değil, belirtilen bir kesri olmalıdır. Bu nedenle, test hatayı değeri ile ç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 üyelerinin, tartışmalar için testleri bir odak olarak kullandığına dikkat edin. Sınamalar doğru ve yeterli ise, kod de olur. Kodun aksine, her bir test ayrı bir durumu temsil eder. Bu nedenle, testlerin, koddan daha kolay tartışılması genellikle daha kolaydır.
Kod incelemesi

Takım Gezgini, çalışmam sayfasında, My Code İncelemeleri istekleri bölümüne gidin ve isteği açın.
Kod incelemesi sayfasında şunları yapabilirsiniz:
Gözden geçirmeyi gerçekleştirip gerçekleştirmeyeceğinizi bildirmek için kabul et veya Reddet ' i seçin.
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ştirilmiş her bir dosyanın değişikliklerini görüntüleyin.
Yazar ve diğer gözden geçirenler ile değişiklikleri tartışmak için açıklamalar ' ı genişletin.
Genel Açıklama Ekle ' yi seçin
-veya-
Bir kod bloğu seçin ve sonra kısayol menüsünden Açıklama Ekle ' yi seçin.
- Katkılarınızı yazar ve diğer gözden geçirenler için görünür hale getirmek üzere Yorum Gönder ' i seçin.
Kodun daha fazla iş gerekip gerekmediğini belirten, incelemenizi tamamlamaya yönelik Gönder ve son ' u seçin.
Kod incelemeye yanıt verme
Peter, Julia 'dan kod incelemesini alır ve yanıtlar.
Kod incelemeye yanıt vermek için
Kod gözden geçirenler ve yazar, yorumları benzer şekilde değiş tokuş edebilir. İnceleme, yazar tarafından kapandığında sona erer. Tartışmanın her katkısıyla, diğer katılımcılara e-posta ile bildirim gönderilir.

Takım Gezgini, çalışmam sayfasında, kod İncelemeleri isteği bölümüne gidin ve isteğe çift tıklayın.
Ayrıca, isteğin kısayol menüsünü açıp Aç' ı seçebilirsiniz.
Açıklamaları okuyun ve gerektiğinde bunları yanıtlayın. Bir yorumu yanıtlamak için Yanıtla' yı seçin, görüntülenen kutuya açıklamanızı girin ve Tamam' ı seçin. Açıklamalarınızı göndermek için Yorum Gönder' i seçin.
Bir dosyayı görüntülemek ve açıklama içeren kod bloklarını görmek ya da bir dosyayı düzenlemek için, açıklamalar bölümüne gidin. Dosyalar alt bölümünde, dosyanın kısayol menüsünü açın ve Compare (salt okunurdur) ya da dosyayı Düzenleseçeneğini belirleyin.
Siz ve diğer gözden geçirenler birbirlerine yönelik açıklamalara yanıt vermeyi tamamladığınızda ve gözden geçirmeyi kapatmaya hazırsanız, gözden geçirmeyi kapat' a tıklayın ve aşağıdakilerden birini seçin:
İncelemesinin bittiğini göstermek için tamamlanmıştır .
-veya-
Gözden geçirmeyi iptal ettiğiniz olduğunu göstermek için iptal edin.
Testi ve kodu düzeltir
Julia 'nın yorumlarını okumaktan, Peter kendi birim testini önerdikçe düzeltir. Test şimdi başarısız olur. Bu, kodun henüz doğru değil olduğunu gösterir.
Peter kodu düzeltir:
/// <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ı onarmak için, kod geliştirmeyle aynı yöntemi izleyin. Başarısız olan bir test yazın ve ardından test geçişini yapın. Kodu ve testleri yalnızca testler başarılı olduğunda iade edin.
Peter artık hatanın keşfedildiği test çalışmasına dikkat eder. Hatayı yeniden oluşturma adımları, test çalışması iş öğesinde açıkça açıklanmaktadır. Adımları izler ve faturaların doğru şekilde listelendiğini bulur.
Çözümü iade et
Peter, sabit kod ve birim testlerinde denetim gerçekleştirir. Hatanın durumu otomatik olarak çözüldüolarak ayarlanır ve atanan değeri otomatik olarak hatayı bulan test takımının üyesine yeniden atanır. Bu takım üyesi, hatanın düzeltildiğini doğrular ve iş öğesini kapatır.
Bu hatayı denetlemek için

Takım Gezgini, çalışmam sayfasında iade et' i seçin.
Aşağıdakileri sağlamak için bekleyen değişiklikler sayfasının içeriğini gözden geçirin:
Tüm ilgili değişiklikler, dahil edilen değişikliklere göre listelenmiştir
Tüm ilgili iş öğeleri Ilgili çalışma öğelerindelistelenmiştir.
Takımınızın, değiştirilen dosya ve klasörlerin sürüm denetim geçmişine baktıkları zaman bu değişikliklerin amacını anlamasına yardımcı olmak için bir Açıklama belirtin.
Iade et 'i seçin.
Bir görevde çalışmayı sürdürür
Peter, görevi üzerinde çalışmaya devam eder. Tüm kod değişiklikleri çalışma alanına geri yüklendiğinden ve açık pencereler, kesme noktaları ve izleme penceresi değişkenleri gibi önemli bir durum ile birlikte çalışmaya hızla başlayabiliyor.
Bir görevde çalışmayı sürdürmesini sağlamak için

Takım Gezgini, çalışmam sayfasında, askıya alınmış rafa kaldırılmış iş listesini bulun. Öğe için kısayol menüsünü açın. İki seçeneğiniz vardır:
Askıya alınmış çalışmayı sürdürmek ve çalışma alanınızdaki tüm bekleyen değişiklikleri otomatik olarak askıya almak istiyorsanız, yeniden et' i seçin.
Askıya alınmış çalışmayı çalışma alanınızda zaten bekleyen değişikliklerle birleştirmek istiyorsanız, devam eden Ile Birleştir' i seçin.
Çalışmanızı sürdürdüğünüzde
çalışmanızı sürdürdüğünüzde Visual Studio geri yükler:
Açık çözümünüz
Kodunuz değişiyor
Açık pencerelerin durumu ve konumu
Kesme noktaları
izleme penceresi değişkenleri ve ifadeleri
Yer işaretleri