‫Bu videoda ve sonraki birkaç videoda size hata ayıklama ve Visual Studio'yu nasıl kullanacağınızı
‫göstermek istiyorum.
‫Ve hata ayıklamanın arkasındaki fikir hatalardan kurtulmaktır.
‫Ve bu hataları tespit etmek bazen oldukça kolay olabilir çünkü programı bir kez çalıştırdığınızda ve çökmeye başladığında,
‫tamam, bir hatanız olduğunu bilirsiniz, ancak bazen bu mantıksal bir hatadır, yani kimliğiniz
‫tarafından gerçekten görülmeyecektir, ancak sizin tarafınızdan veya kullanıcılarınız tarafından tespit edilmesi gerekir, umarım size onu geliştirmeniz veya
‫bu hatadan kurtulmanız gerektiğini söyleyecektir.
‫Size Visual Studio'da hata ayıklamanın işlevselliğini göstermek veya göstermek için burada küçük bir program
‫oluşturdum.
‫Bunun için kullanacağımız küçük bir araç hazırladım ve bu araç bir parti arkadaşını davet etme aracı
‫olacak.
‫Kızım üç yaşına yeni girdi ve onun için küçük bir parti düzenledik ve bazı arkadaşlarını davet edebilecekti
‫ve elbette tüm anaokulunu davet etmek isterdi, ancak sadece üç arkadaşını davet etmesine
‫izin verdik.
‫Şimdi hangi arkadaşlarını davet etmek istediğine karar vermesi gerekiyordu.
‫Ve tabii ki bu kolay bir karardı çünkü diğerlerinden daha çok sevdiği bazı arkadaşları
‫var ama sonuçta en sevdiği arkadaşlarının kim olduğunu bilmiyorum.
‫Yani kimi davet edebileceğine ben karar verseydim, şöyle küçük bir program yazardım:
‫Tamam, kısa adı olan ve bir tam adı olan herkes.
‫Evet, bu durumda en fazla üç kişi partiye davet edilebilir.
‫Bütün arkadaşlarımızın isimlerini verdi.
‫Ve sonra diyeceğim ki, tamam, en kısa isme sahip olanlar, en kısa isme sahip üç kişi
‫davet edilecek.
‫Ve buradaki araç da bu.
‫Yazdığım şey, tam olarak bunu yapıyor.
‫Frank, Joe, Michelle, Andy, Maria, Carlos ve Angelina'dan oluşan bir listemiz var.
‫Ve bir listeye ve bu listeden seçmesi gereken kişi sayısına ihtiyaç duyan bu get party friends
‫yöntemimiz var.
‫Ve sonra bu kişilerin ya da benim durumumda bu çocukların adlarını konsola yazan
‫bir for each döngümüz var.
‫Tamam.
‫Çok süslü bir şey değil.
‫Kimin davet edilip kimin edilmeyeceğine karar veren algoritma işte bu yöntemdir ve burada bir parti arkadaşını davet ederiz veya bir
‫parti arkadaşının kim olduğunu öğreniriz.
‫Elbette kontrol edebileceğimiz kişilerin bir listesine ihtiyacımız var.
‫Sonra en kısa ismi kontrol ederiz ve her zaman karşılaştırırız.
‫Bu yüzden listedeki tüm kişileri gözden geçirir ve her zaman karşılaştırırız.
‫İsim belirli bir uzunluktan daha mı kısa olacak yoksa diğer insanlarınkine mi girecek?
‫Yani sonuçta bana sadece en kısa isimleri verecek.
‫Ama burada dahili olarak bir hata var.
‫Tamam.
‫Bu yüzden bu uzunluktaki en kısa isimden büyük olanı karşılaştıracağım.
‫Bu durumda, tüm kısa isimleri almak istememe rağmen sadece en uzun isimleri
‫alacağım.
‫Bu sadece uyguladığım bir kasıt hatasıdır, çünkü şimdi bunun fark etmeyebileceğiniz bir şey olduğunu
‫görebilirsiniz.
‫Elbette bu mantıksal bir hata ve kodu çalıştırırsak yine de çalışacaktır.
‫Hata ya da arıza olmayacaktır.
‫Çökmeyecek, sadece bize yanlış isimler verecektir.
‫Ama şimdi bu durumda bizim için kolay çünkü görüyoruz, tamam, Michelle, Angelina ve Carlos uzun
‫isimler ve listeyi biliyoruz.
‫Joe, Anne, Maria ve hatta Frank'in olduğunu biliyoruz.
‫Daha kısa isimlerimiz var, ama nedense en kısası olsun istememize rağmen listede yer
‫almadılar.
‫Evet.
‫İnsanlar ya da en kısa isimli insanlar.
‫Ne kadar kısa ya da ne kadar uzun olduklarını bilmiyorum ama burada bunun bir önemi yok.
‫Önemli olan şu ki, burada kolay bir liste var çünkü geliştirici olarak listeyi burada görebiliyoruz.
‫Peki ya listeyi başka bir yerden alırsak?
‫Diyelim ki listeyi binlerce isim içeren devasa bir XML dosyasından alıyoruz ya da internetten
‫bir liste alıyoruz ve yazılımımız tarafından işlenmeden önce listeyi göremiyoruz.
‫Böylece bize verilen bu isimlerin aslında en kısa isimler olmadığını göremeyiz,
‫ancak yazılımımızda bu küçük hata var ve şimdi get part different yönteminin yaptığı şey bu.
‫Sadece en kısa ismi döndürecektir.
‫Ve sonra bu get party friends çoğuluna sahibiz, bu sadece belirli bir miktara kadar kısa
‫isimleri olan tüm kişilerin listesini döndürür ve burada bir geçiş ödeyebiliriz.
‫Böylece üç sayısını geçiyoruz, bu da sadece üç arkadaşımız olacağı anlamına geliyor.
‫Eğer dört sayısını geçersek, dört arkadaşımız olacak ve bu böyle devam edecek.
‫Tamam.
‫Yani yazılımımızın şu anda yaptığı şey temelde bu.
‫Frank ile ticari orijinal kartlarımız var, bu yüzden elimizde sadece bu boş parti arkadaşları listesi var.
‫Ve bu parti arkadaşları listesinin sayısı daha düşük olduğu sürece, o zaman geçen sayı, biz.
‫Bir sonraki parti arkadaşını kontrol etmeniz yeterlidir.
‫Sonra devam ediyoruz ve bunu parti arkadaşları listesine ekliyoruz.
‫Ve yaptığımız şey, bize iletilen listeden çıkarmaktır.
‫Şimdi bu çok tehlikeli bir şey, ancak bunu yapıyoruz çünkü acemi bir geliştiriciyiz
‫ve sadece şu küçük numarayı yapıyoruz, tamam, şimdi sadece bir değişkenden veya listedeki
‫bir öğeden kurtulacağız.
‫Ve bunu programlı olarak yapıyoruz.
‫Ve sonra adım adım kısa bir listemiz olur ve elimizde sadece listemizde olmayan kişileri karşılaştırmak
‫kalır.
‫Tamam.
‫İşte bu listeyle yaptığımız şey bu.
‫Kaldır.
‫Bu temiz bir programlama olmasa da, bunu nasıl düzelteceğimizi daha sonra göreceğiz.
‫Ama şimdilik yazılımımız var ve çalışıyor.
‫Tamamen iyi çalışıyor.
‫Ama bu hatayı nasıl düzelteceğimizi nasıl bulacağız?
‫Çünkü artık bir hatamız olduğunu biliyoruz ve elbette kodumuzu gözden geçirebiliriz.
‫Ve bu durumda, kolay çünkü sadece 43 satırlık bir kod.
‫Ancak binlerce satır kod, birçok farklı dosya ve birçok farklı kişinin üzerinde çalıştığını ve hatanın
‫ne olduğunu bulamadığınızı düşünün.
‫Şimdi, yapabileceğiniz şey Visual Studio'nun hata ayıklama yeteneklerini kullanmaktır ve bunu yapmak için yapabileceğiniz
‫şey sadece bir kesme noktası eklemektir.
‫Şimdi bir kesme noktası ile başlayalım.
‫Elimizde bu var.
‫Sol taraftaki küçük kırmızı nokta.
‫Genel olarak, burada sahip olduğunuz gri çubuk, kesme noktalarını ekleyebileceğiniz yerdir.
‫F dokuz tuşuna basarak da bir kesme noktası ekleyebilirsiniz ancak ben bunu yapmayacağım çünkü dokuz tuşu video
‫kayıt yazılımımı duraklatıyor.
‫Bu yüzden faremi kullanarak yapmam gerekiyor.
‫Bu yüzden hata ayıklamaya gidiyorum ve sonra kesme noktasını değiştir'e basabiliyorum.
‫Bunun yapacağı şey, benim için bu kesme noktasını oluşturmak olacak.
‫Elbette f dokuz tuşuna da basabilirsiniz.
‫Yani kısayol dokuz tanedir ve hata ayıklama yaparken hata ayıklamaya gidip her zaman tıklamak yerine kısayolları
‫kullanmak çok daha kolaydır.
‫Tamam.
‫Bu yüzden klavyenizdeki tuşları kullanmaya alışın.
‫Tamam.
‫O zaman hata ayıklamaya başlayalım.
‫Pekala, hata ayıklamaya gidiyorum ve sonra hata ayıklamayı başlatıyorum ya da hata ayıklamayı başlatmak için F beş tuşuna basabilirim.
‫Şimdi, yazılımımızın şu anda takılı kaldığı yerin burası olduğunu gösteren küçük sarı okumuz
‫var.
‫Burada bu kesme noktasını oluşturduğumuz için orada takılı kalmasını sağladık.
‫Böylece yazılım bu noktada kırılıyor ve artık yazılımı kendi hızımızda ilerletebiliyoruz, böylece satır satır
‫ilerleyebiliyor ve hatta daha derine inebiliyoruz.
‫Hadi yapalım şunu.
‫Bir sonraki adıma geçmek için F10'a ya da üstteki bu düğmeye basın.
‫Bu arada, tüm bu düğmeler sadece hata ayıklama modunda olduğum için mevcut, değil mi?
‫Böylece yazılımımı çalıştırmaya başladım ve ayrıca adım adım içeri ve dışarı adım adım ilerlemenin de burada mevcut olduğunu görebilirsiniz.
‫Yani birden fazla farklı yolunuz var.
‫Evet, adım atın, içeri girin ve dışarı çıkın ya da şu düğmelere basın.
‫Tamam.
‫Şu anda yaptığım şey bir sonraki satıra geçmek.
‫Ben de bir sonraki sıraya geçtim.
‫Ve şimdi friends'in yedi değeri olan bir değer olduğunu görebilirsiniz.
‫Yani Frank, Joe, Michelle ve diğerlerinden oluşan yedi dizelik bir liste.
‫Endeks sıfırda Frank, endeks birde Joe ve diğerleri var.
‫Şimdi party friends'in kendisi, ona bir değer atıyor olsak da hala boş bir listedir.
‫Ancak bunun nedeni, 11. satıra geldiğinizde, 10. satırın yürütülmüş olması, ancak 11. satırın henüz yürütülmemiş olmasıdır.
‫Yani bu, bir sonraki satıra geçmek için tekrar f on tuşuna basabilmeniz için tekrar adım atmamız gerektiği anlamına gelir.
‫Ve 13. hattımız.
‫Yani 12. satır atlandı çünkü orada hiçbir şey yok, orada kod yok.
‫Ve her döngü için bu şekilde devam etti.
‫Peki ya daha derine inmek istiyorsanız?
‫Peki ya bu get party friends yöntemi çağrıldığında ne olduğunu bilmek istiyorsanız?
‫Yapabileceğiniz şey, bu oku yukarı sürükleyerek geri dönmektir.
‫Bu yüzden yukarı sürüklüyorum ve şimdi 11. satıra geri döndüm ve şimdi yapabilirim.
‫F 10'a basarak adım atmak yerine, F 11'e basarak adım atabilirim, böylece F 11'e basabilirim ve get party friends
‫yöntemine adım atabilirim, bu da şu anda 18. satırda olduğumuz anlamına gelir, bu da şu anda Get Party Friends yöntem
‫çağrısının içinde olduğumuz anlamına gelir.
‫Ve buraya da gidebiliriz.
‫Adım adım.
‫Parti arkadaşlarının ne olduğunu kontrol edebiliriz.
‫Parti arkadaşlarının değerini kontrol edebiliriz.
‫Sayımın sıfır olduğunu görebilirsiniz.
‫Yani boş bir liste, bu da listede sıfır girdi olduğu anlamına geliyor.
‫Ve sonra bir şeyleri karşılaştırdığımız bu vahşi döngüye sahibiz, böylece bir sonraki satıra gidebiliriz ve parti arkadaşlarının
‫sayısının sıfır olduğunu görebiliriz ve 0 ile 4'ü karşılaştırırız ve sıfır dörtten azdır.
‫Yani vahşi döngü ya da vahşi doğrudur.
‫Böylece bir sonraki satıra geçebiliriz ve burada Get Party Friend'i çağırıyoruz, böylece daha da derine inebiliriz,
‫böylece get party friend'e adım atabiliriz.
‫Ve şimdi burada bu yöntemde olduğumuzu görebilirsiniz.
‫Yani stepping into bir metoda girmek anlamına gelir stepping out ise shift f 11'in bir metottan atlamasıdır.
‫Ama şimdi buradaki yöntem çağrısına bir göz atalım.
‫Bu noktada en kısa ismin Joe olduğunu görebiliyoruz.
‫Sonra bu for döngüsüne sahibiz ve işte bu for döngüsünde adım adım ilerliyoruz.
‫Yani önce değişkeni ayarlıyoruz, sonra karşılaştırıyoruz.
‫Karşılaştırma doğru olduğunda, for döngüsüne veya for döngüsünün içine gideriz.
‫Sonra bu if deyimini tekrar karşılaştırırız ve göründüğü gibi üç uzunluğunun üçün uzunluğundan
‫veya en kısa uzunluğundan daha büyük olmadığını görebiliriz.
‫Yani üç çok iyi değil.
‫Üç Şimdi bu if deyimi doğru değildi, bu yüzden for döngüsünün bir sonraki yinelemesine gitti.
‫Yani şimdi for döngüsünü tekrar tekrar çalıştıracak.
‫Şimdi bunun dışına çıkabilirsiniz ve bunun yapacağı şey, bu yöntemin yürütülmesinden çıkmak olacaktır ve
‫sonra oradan devam edebilirsiniz.
‫Ancak bununla yaptığınız şey, for döngüsünü normalde olması gerektiği gibi çalıştırmamaktır.
‫Yani tekrar dışarı çıkarsam, aralık dışında bir argüman istisnası alıyorum.
‫Dolayısıyla, burada her zaman içeri girip çıkmamaya dikkat etmelisiniz, ancak bu araçları endişeyle kullanmalısınız
‫ve elbette oradan çalıştırabilir veya hata ayıklamayı durdurabilir, tüm hata ayıklama sürecini yeniden başlatabilirsiniz çünkü şimdi bu küçük
‫hatayı aldık ve belki de nasıl düzelteceğinizi bilmiyorsunuz.
‫Böylece her şeyi yeniden çalıştırabiliriz ve şimdi elbette yine adım adım ilerleyebiliriz.
‫Ve yapabiliriz.
‫Bize isimleri verdiği noktaya gelene kadar adım at, adım at, adım at.
‫Gördüğünüz gibi şu anda Michelle'deyiz.
‫Şimdi listedeki bir sonraki isme gidiyor, Angelina listedeki bir sonraki isme gidiyor ve o da Carlos.
‫Böylece her değişkeni ve her değişkenin durumunu her an kontrol edebileceğinizi görebilirsiniz, bu da
‫bir şeyleri anlamak istiyorsanız çok önemlidir.
‫Tamam.
‫Kesme noktalarının nasıl kullanılacağına ve hata ayıklama işlemine nasıl başlanacağına ilişkin genel fikir budur.
‫Bir sonraki videoda, değişkenleri ve durumlarını daha iyi bir şekilde görerek bu mantıksal hatayı nasıl düzeltebileceğimize
‫bakacağız.
‫Çünkü artık değişkenlerin üzerine gelip belirli bir noktada hangi değere sahip olduklarını görebiliyorum.
‫Ancak aynı anda birden fazla değişkeni karşılaştırmak veya aynı anda birden fazla değişkenin durumunu görmek
‫istiyorum.
‫Bir sonraki videoda da buna göz atacağız.
‫Orada görüşürüz.