Altbilgi içeriğine atla
Iron Academy Logo
C# Öğrenin
C# Öğrenin

Diğer Kategoriler

C# Kodunuzu Nasıl Basitleştireceğinizin 14 Yolu – Tim Corey'nin Videosundan C# En İyi Uygulama İçgörüler

Tim Corey
44m 57s

Tim Corey, "C# Kodunu Basitleştirmenin 14 Yolu" adlı kapsamlı videosunda, kod okunabilirliğini artıran, karışıklığı azaltan ve kod tabanınızı sürdürülebilir kılan pratik C# en iyi uygulamalarını araştırıyor. Tek sıra veya anlaşılması zor hilelere takıntı yapmak yerine, Tim, diğer geliştiricilerin takip edebileceği temiz, anlaşılır kod yazma üzerine yoğunlaşıyor.

Visual Studio'daki gerçek örnekler üzerinden her ipucunu çerçeveliyor, adlandırma kuralları, hata yönetimi ve hatta kodu kırmadan nasıl yeniden yapılandırılacağını anlatıyor. Bu sadece teori değil—pratik, kodu daha iyi hale getirir.

Bu makalede, kendisinin gösterdiği 14 yolu adım adım inceleyelim.

1. Daha Temiz Kod İçin Static Using

Tim, static erişimin tekrar eden çağrıları nasıl basitleştirebileceğini göstererek başlıyor. Deklare ederek:

using static System.Console;
using static System.Console;

artık her statik üyeyi ön ekle detaylandırmanıza gerek yok.

Sadece kelimeleri kaldırmakla kalmaz—statik erişimi netleştirmek de önemlidir. Tim, Console veya Math gibi sık kullanılan bir sınıfta tanımlanmış bir statik üyeyi çağırıyorsanız, bu kısaltmanın kod okunabilirliğini artırdığını belirtiyor.

Ancak, iyi kodlama uygulamalarının bir parçası olarak, geliştiricilerin çakışmalardan kaçınması gerektiği konusunda uyarıyor—iki farklı sınıfın aynı statik üye ismine sahip olabilir. Beklenmedik davranışlara karşı bilinçli olmak anahtardır.

2. Liste Başlatma

C#, şimdi listeleri daha doğrudan başlatmanıza izin verir:

List<string> names = ["Tim", "Sue", "Bilbo"];
List<string> names = ["Tim", "Sue", "Bilbo"];

Tim, bunun her şeyi sadece tek bir ifadeye sıkıştırmakla ilgili olmadığını açıklıyor—bu, töreni azaltarak okunması kolay ve performansı optimize etmek için kod yazmakla ilgilidir.

"new List of String" sabit ifadesini izin vermek yerine, okuyucu koleksiyondaki tam olarak neyin önemli olduğunu görür: açıklayıcı isimler. Tim ayrıca bunun diziler ve hatta sözlükler için çalıştığını ve kodlama kurallarıyla, netliği önceliklendiren bir uyum içinde olduğunu belirtir.

3. Hedef-Tipli new

Başka bir zaman kazandırıcı: hedef-tipli 'new'. Yerine:

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();

şöyle yazabilirsiniz:

List<int> numbers = new();
List<int> numbers = new();

Tim, sınıf ismini tekrar etmenin gereksiz olduğunu vurguluyor—zaten sol tarafta. Bu, kod tabanınızı daha kolay taramakla beraber gereksizlikleri ortadan kaldırıp iyi kod uygulamalarını takip eder.

4. var ve Anonim Tipler

Tim, var'ı ele alıyor; kodlama uygulamaları arasında tartışma yaratan bir özellik. Bazıları değişken isimlerini ve tiplerini gizlemesinden hoşlanmıyor, ancak Tim, asıl gücünün anonim tiplerde yattığını açıklıyor.

Veri kaynaklarıyla (örneğin Dapper üzerinden SQL) çalışırken, Tim var ile anında nesneler oluşturabileceğinizi gösteriyor:

var parameters = new { FirstName = "Tim", LastName = "Corey" };
var parameters = new { FirstName = "Tim", LastName = "Corey" };

Bu, yazma sorguları veya tek seferlik nesneler için mükemmeldir—sadece parametreler için bir taban sınıf oluşturmanıza gerek yoktur. Tim'in dediği gibi, bu gereksiz türlerle kod tabanınızı kirletmekten kaçınır, yine de bir şeyler ters giderse anlamlı hata mesajları sağlar.

5. Dosya-Güdümlü Ad Alanları

Tim, dosya-güdümlü ad alanlarına geçiyor ve şunu gösteriyor:

namespace ProjectName
{
    // indented code
}
namespace ProjectName
{
    // indented code
}

şuna dönüşüyor:

namespace ProjectName;
namespace ProjectName;

Bu küçük değişiklik, boşa harcanan girinti miktarını ortadan kaldırır ve isimlendirme kuralları, örneğin genel üyeler için Pascal biçimini, gibi C# isimlendirme kurallarına uyum sağlar. Tim, çoğu dosyanın yalnızca bir ad alanı içerdiğinden, bunun kod okunabilirliğini artırdığını ve mantıksal bölümleri hizalı tuttuğunu açıklar.

6. Tek Satırlık Veri Yapıları için Kayıtlar

Kayıt kullanarak yalnızca bir ifadeyle veri nesneleri tanımlayabilirsiniz:

public record EmployeeRecord(int Id, string Name);
public record EmployeeRecord(int Id, string Name);

Tim, bunun minimal çabayla tam tür—özellikler, değiştirilemezlik ve ToString()—oluşturduğunu belirtiyor. Türetme sınıf senaryolarının hala sınıflar gerektireceği açık, ancak nesneniz salt okunabilir olduğunda, kayıtlar bir sorumluluk ilkesini izleyerek bir işi iyi yapar.

7. Desen Eşleme

Tim, desen eşlemenin istisnaları nasıl yönettiğinizi ve karşılaştırmaları güvenli bir şekilde nasıl gerçekleştireceğinizi gösteriyor. Uzun tip kontrolü yazmak yerine, bunları birleştirebilirsiniz:

if (emp is EmployeeRecord e)
{
    e.Id = 1;
}
if (emp is EmployeeRecord e)
{
    e.Id = 1;
}

Tek bir satır kontrol eder ve tür dönüşümü yapar. Tim, bunun iyi kodlama uygulamalarıyla uyumlu olduğunu söylüyor—x veya y gibi tek harfli değişken isimlerinden kaçınırsınız ve bunun yerine e gibi açıklayıcı isimler verirsiniz. Açık bir yöntem adı ve değişken adları, kodu diğer geliştiricilerin daha kolay sürdürebileceği bir hale getirir.

8. Dize İç İçe Yazma

Okunabilir dizeler oluşturmak için, Tim dize iç içe yazmayı gösteriyor:

$"The employee with ID {e.Id} is {e.Name}"
$"The employee with ID {e.Id} is {e.Name}"

Bu, anlamlı hata mesajları ve yazılı yorumları kolaylaştırdığını belirtiyor. Karmaşık birleştirme yerine, İngilizce gibi okunan bir kod yazabilirsiniz—kod kalitesini artırır ve çıktıyı kontrol eden gelecekteki birim testlerini basitleştirir.

9. Refactoring İçin Güvenli nameof()

Tim, refactoring yaparken nameof() işlevini nasıl koruyacağını gösteriyor. Dizelerde sabit kodlanmış değişken isimleri, yeniden adlandırılırsa beklenmeyen davranışlara yol açabilir. Ancak, yazarak:

nameof(emp)
nameof(emp)

Derleyici, her kullanımı otomatik olarak günceller. Bu, kodunuzu temizleyeceğiniz ve yeniden düzenleyeceğinizde kod tabanınızı sağlıklı tutan en iyi uygulamalardan biridir.

10. Birden Fazla Dönüş Değeri İçin Tuples

İki değeri döndürmek için sadece bir temel sınıf oluşturmak yerine, Tim tuples kullanır:

(string FirstName, string LastName) SplitName(string fullName)
(string FirstName, string LastName) SplitName(string fullName)

Bu, gereksiz dış bağımlılıklardan kaçınır ve tek sorumluluk ilkesine uyar—yöntem sadece bir ismi böler, başka bir şey yapmaz. Tim'in dediği gibi, aşırı mühendislikten kaçındığınızda kod daha iyi hale gelir.

11. Dekonstrüksiyon

Tuples üzerine inşa ederek, Tim sonuçları yerel değişkenlere nasıl deconstruct edeceğinizi gösteriyor:

var (firstName, lastName) = SplitName("Tim Corey");
var (firstName, lastName) = SplitName("Tim Corey");

Bu, değişken adlarını açıklayıcı tutar ve daha sonra kriptik tuple sözdizimini önler. Tim, kullanılmayan değerleri (_ kullanarak) işaret etmenin, niyetinizi gösterdiğini belirtir—açıklanmadan bırakılmış tek harfli değişken isimleri kalmaz.

12. İhtiyaç Duyulmayan Değerler İçin Discards

Tüm tuple parçalarına ihtiyaçınız yoksa, Tim discards önerir:

var (firstName, _) = SplitName("Tim Corey");
var (firstName, _) = SplitName("Tim Corey");

Bu, test çerçeveleri veya tüm çıktılarının önemli olmadığı birim testlerde diğer geliştiricilere kasıtlı olarak bir değeri yok saydığınızı gösterir.

13. Blok Olmadan using İfadeleri

Tim, kaynak yönetimi ve hata yönetimine geçer. Önceden, yazardınız:

using (var connection = new SqlConnection(connString))
{
    // work
}
using (var connection = new SqlConnection(connString))
{
    // work
}

Şimdi, şunu kullanabilirsiniz:

using var connection = new SqlConnection(connString);
using var connection = new SqlConnection(connString);

Bu, SOLID ilkeleriyle uyumlu—özellikle tek sorumluluk ilkesi ve bağımlılık tersine çevirme ilkesiyle. Tim, bu sözdiziminin veritabanları gibi dış bağımlılıklar için iyi çalıştığını, çoğu istisna yönetiminin temizlendiğini ve bağlantıların her zaman kapandığını, bağlantıların atılmadığı durumda performans sorunları veya hatta SQL enjeksiyonu senaryolarından kaçınıldığını belirtiyor.

14. Satır İçi Değişken Bildirimleri

Son olarak, Tim satır içi out değişken bildirimlerini ele almaktadır:

if (int.TryParse(numberText, out int numberValue))
if (int.TryParse(numberText, out int numberValue))

Burada, yerel değişkeni aynı satırda oluşturursunuz. Bu, kodlama kurallarını sıkı tutar ve yöntemlerin isimlerini açıklayıcı yapar. Kodu düzgün bir şekilde gruplayarak beklenmeyen davranışları azaltır ve gelecekteki refactoring çabalarını daha güvenli hale getirir.

Özetle

Tim, videosunu, izleyicilere hatırlatarak kapatır: bu basitleştirmeler, anlaşılması zor tek sıra yazılar yazmakla ilgili değil—iyi kodlama uygulamalarıyla ilgilidir. static kullanmak, kayıtlar, desen eşleme, tuples ve discards gibi özelliklerle temiz, modern C# yazmanıza olanak tanır.

Geliştiricilere bu özellikleri benimsedikçe adlandırma kuralları, hata yönetimi ve anlamlı adlar hakkında düşünmelerini öneriyor. "Kod, insanlar tarafından okunmak için tasarlanmıştır," diyor Tim—ve kolay anlaşılır kod yazdığınızda, hayatı kendiniz ve diğer geliştiriciler için daha iyi hale getirirsiniz.

Kısacası: bu C# en iyi uygulamalarını benimseyin, tek sorumluluk ilkesi, arayüz ayrım ilkesi ve bağımlılık tersine çevirme ilkesi gibi SOLID ilkeleri izleyin, ve kodunuz yalnızca derlenmekle kalmaz—performansı artırır, beklenmedik davranışları azaltır ve ekibinizin mutlu kod yazmasını sağlar.

Hero Worlddot related to C# Kodunuzu Nasıl Basitleştireceğinizin 14 Yolu – Tim Corey'nin Videosundan C# En İyi Uyg...
Hero Affiliate related to C# Kodunuzu Nasıl Basitleştireceğinizin 14 Yolu – Tim Corey'nin Videosundan C# En İyi Uy...

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js üzerinde çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara