Alıştırma - If deyimlerinden kod bloklarını kaldırma

Tamamlandı

Yazılım geliştiricileri, okunabilirlikten ödün vermeden tuş vuruşlarından ve görsel alandan tasarruf sağlayan kod yazabildiklerinde bunu çok sever. Yalnızca kodunuzu daha okunabilir ve anlaşılır hale getirdiğinde geliştirme sürecinde "daha az daha fazladır" ifadesini uygulayın.

Bir kod bloğu yalnızca bir kod satırına ihtiyaç duyuyorsa küme ayraçları kullanarak resmi bir kod bloğu tanımlamanız gerekmez. Teknik olarak kodunuzu birden çok satıra ayırmanıza bile gerek olmasa da, deyimleri tek bir satırda birleştirmek kodunuzun okunmasını zorlaştırabilir.

Küme ayraçlarını yukarıda belirtildiği şekilde kaldırmak, kodunuzun işlevselliğini etkilememesi gereken bir stil değişikliğidir. Ancak, değişikliklerinizin kodun ne kadar okunabilir olduğunu olumsuz etkilemediğinden emin olmak için adımlar atmalısınız. Küme ayraçlarını ve boşlukları kaldırmanın etkisini değerlendirip, kodunuzun daha az okunabilir hale geldiğini fark ederseniz, özgün koda geri dönebilirsiniz.

Kod bloğu kullanan bir if deyimi örneği oluşturma

  1. Visual Studio Code'da boş bir Program.cs dosya açtığınızdan emin olun.

    Gerekirse Visual Studio Code'ı açın ve düzenleyicide bir Program.cs dosyası hazırlamak için aşağıdaki adımları tamamlayın:

    1. Dosya menüsünde Klasörü Aç'ı seçin.

    2. CsharpProjects klasörüne gitmek ve açmak için Klasör Aç iletişim kutusunu kullanın.

    3. Visual Studio Code EXPLORER panelinde Program.cs'ı seçin.

    4. Visual Studio Code Seçimi menüsünde Tümünü Seç'i seçin ve delete tuşuna basın.

  2. Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın:

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.

    Kodunuzu çalıştırmak için Terminal komut isteminden girin dotnet run .

  4. Aşağıdaki çıkışı gördüğünüzden emin olun:

    True
    

    Kodunuz iyi bir başlangıç noktasını temsil eder, ancak tek bir kod satırı içeren bir kod bloğunuz vardır. Bu durumda, bir kod bloğu tanımlamak gerekli mi?

Küme ayraçlarını kaldırma

Yukarıdaki kod, flagtrue olduğunda bir kod bloğu yürütür. Bu kod bloğu tek bir kod satırı içerdiğinden küme ayraçlarını kaldırma seçeneğiniz vardır.

  1. Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:

    bool flag = true;
    if (flag)
        Console.WriteLine(flag);
    

    Uyarı

    Küme ayraçlarının kaldırılması, Console.WriteLine(flag);'ın if deyiminin kod bloğu olduğu gerçeğini değiştirmez.

  2. Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.

  3. Çıkışın öncekiyle aynı olduğuna dikkat edin.

    Yine de aşağıdaki çıktıyı görmeniz gerekir.

    True
    

    Ancak, iki daha az kod satırı vardır. En önemlisi, girintili kodun altındaki if kod satırıyla kodunuz hala kolayca okunabilir.

Tek satırlı form if deyimlerinin okunabilirliğini inceleme

Bu adımda, kod okunabilirliğinin olumsuz etkilenebileceği bir duruma bakacaksınız.

Hem if ifadesi hem de Console.WriteLine() yönteminin çağrısı kısa olduğundan, bunları tek bir satırda birleştirmek isteyebilirsiniz. Sonuçta, C# sözdizimi if deyimini bu şekilde birleştirmenizi sağlar.

  1. Visual Studio Code Düzenleyicisi'nde kodunuzu aşağıdaki gibi güncelleştirin:

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.

  3. Çıkışın hala aynı olduğuna dikkat edin.

  4. Kod okunabilirliğini göz önünde bulundurmak için bir dakika bekleyin.

    Kodun daha büyük bir bölümünde iç içe geçmiş önceki iki kod örneğini düşünün. Kod deyimlerinin birleştirilmesi (4. adımda yaptığınız gibi) okunmasını zorlaştırabilir.

    Tek deyimli kod bloğu içeren bir if deyimi uygularken, Microsoft şu kuralları göz önünde bulundurmanızı önerir:

    • Hiçbir zaman tek satırlı form kullanmayın (örneğin: if (flag) Console.WriteLine(flag);
    • Küme ayraçları her zaman kabul edilir ve eğer if/else if/.../else bileşik ifadelerinin herhangi bir bloğu ayraç kullanıyorsa veya tek bir ifade gövdesi birden çok satıra yayılıyorsa, kullanılması zorunludur.
    • Ayraçlar yalnızca if/else if/.../else bileşik deyimiyle ilişkili her bloğun gövdesi tek bir satıra yerleştirildiğinde atlanabilir.
  5. Daha büyük if-elseif-else yapılarının okunabilirlik etkisini incelemek için kodunuzu aşağıdaki gibi güncelleştirin:

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.

    Kodu çalıştırdığınızda aşağıdaki çıkışı üretmesi gerekir:

    Found Steve
    

    Kod çalışır, ancak bu kod satırları yoğun ve okunma zor. Kodu, if, else if ve else ifadelerinden sonra satır sonu içerecek şekilde yeniden biçimlendirmek isteyebilirsiniz.

  7. Az önce çalıştırdığınız kodu aşağıdaki kodla karşılaştırın:

    string name = "steve";
    
    if (name == "bob")
        Console.WriteLine("Found Bob");
    else if (name == "steve") 
        Console.WriteLine("Found Steve");
    else
        Console.WriteLine("Found Chuck");
    

    İkinci kod örneğini okumanın ne kadar kolay olduğuna dikkat edin.

Özet

İfade kod blokları ve okunabilirliği hakkında hatırlamanız gereken bazı önemli noktalar if şunlardır:

  • Bir if-elseif-else deyiminin kod blokları içinde yalnızca bir satır kod listelendiğini fark ederseniz, kod bloğunun küme ayraçlarını ve boşluklarını kaldırabilirsiniz. Microsoft, küme ayraçlarının bir if-elseif-else deyimin tüm kod blokları için tutarlı bir şekilde kullanılmasını önerir (ya hep mevcut ya da hep kaldırılmış bir durumda olmalıdır).
  • Yalnızca kodu daha okunabilir hale getirdiğinde bir kod bloğunun küme ayraçlarını kaldırın. Küme ayraçları eklemek her zaman kabul edilebilir.
  • Satır akışını yalnızca kodu daha okunabilir hale getiriyorsa kaldırın. Microsoft, her deyim kendi kod satırına yerleştirildiğinde kodunuzun daha okunabilir olmasını önerir.