Kategoriler
Teknik

Yoda Notasyonu: Nedir, Ne Değildir?

Yoda notasyonu nedir?

Yoda koşul programlama stili, daha yaygın adıyla Yoda notasyonu, mantıksal karşılaştırmalarda değişkenin ve sabitin yerini değiştirerek kullanmanızı sağlayan bir programlama tekniğidir. Genellikle koşul ifadeleri, koşullu ifadeler veya ‘if’ blokları olarak adlandırılan bu yapılar, programın belirli koşullar altında hangi eylemleri gerçekleştireceğini belirler.

"Talk is cheap, show me code" yani "Ağzı olan konuşuyor, bana koddan haber ver" ifadesini duymuşsunuzdur. İşte bu durumda, Yoda notasyonunu bir örnek üzerinden göstermek en iyisi olacak. Tipik bir koşul ifadesi şu şekilde görünebilir:

if ($değişken == null) {
    // kod
}

yerine Yoda notasyonu kullanalım:

if (null == $değişken) {
    // kod
}

Yoda notasyonunu neden kullanayım?

Bu konu hakkında bazı görüşler var. İlki mantıksal karşılaştırma yaparken bir değişken tanımlama hatasından kaçınmak. Yani iki adet eşittir işareti == koymak yerine bir adet = işareti koyduğunuzda bir değişken tanımlamış oluyorsunuz ve bu bir hataya sebebiyet veriyor. Erken dönem ve öğrenme aşamaları haricinde bu hatayı yapmış olan birileri varsa ve bunu ne sıklıkla yapıyor öğrenmek isterdim. Zira bu bana zayıf bir argüman gibi geliyor.

Yazı genelinde PHP ve JavaScript programlama dilleri üzerinden gideceğim. Ben if bloğu içerisinde bazen özellikle bir değişkene eşitlik sağlıyorum. Ama bunun hatasını hiç yapmadım. Şöyle ki:

if ($değişken = null) {
    // bu blok çok yalnız
}

Yukarıdaki kod hatalı ve değişken null değerine sahip olduğu ve null değeri de PHP’de falsy olduğu için blok içindeki kodlar çalışmayacak. Bunun yerine

if (null = $değişken) {
    // bunun yalnızlığı geçici
}

Yoda notasyonu ile bu şekilde yazmış olsaydı bir derleme hatasından dolayı yaptığımız hatanın farkına varacak ve düzeltmesini yapacaktık.

Ben bazen şu şekilde kod yazma ihtiyacı duyabiliyorum:

if ($transaction = Transaction::find(5)) {
    $transaction->notify();

    return $transaction;
}

return false;

Bazı programlama dillerinde kabul edilebilir bir durum. Ama bazı programlama dillerinde (Swift, Kotlin ve Python 3.8 sonrasında) buna izin verilmiyor. Örneğin Python’da mors operatörü := ile bu işlemi yapıyorsunuz.

Yoda Notasyonunun Artıları ve Eksileri

Yoda notasyonunun, kod okunabilirliği üzerinde pozitif ve negatif etkileri olduğunu belirtmek önemlidir. Bu notasyonun bazı artıları:

  • Yanlışlıkla atama (=) yerine karşılaştırma (==) yapma hatasını önler.
  • Hatalı kod daha hızlı fark edilir, çünkü çoğu dilde hatalı bir atama denemesi derleme hatası oluşturur.

Bazı olası eksileri:

  • Yoda notasyonu, kodun doğal dil akışına aykırıdır ve bu nedenle bazıları için daha az okunabilir olabilir. Mesela, $değişken == null ifadesi "eğer değişken null ise" olarak okunabilirken, null == $değişken ifadesi "eğer null değişken ise" olarak okunur. İkincisi, doğal dil bakış açısından biraz daha zorlayıcı olabilir.

Yoda Notasyonunun Kullanımı

Yoda notasyonu, genellikle PHP ve C dillerinde gözlemlenir. Bununla birlikte, JavaScript gibi dillerde de kullanılabilir. Bu notasyonun kullanımı genellikle kişisel veya ekip tercihlerine bağlıdır.

Örneğin, WordPress, Yoda koşullarının kullanılmasını bir kodlama standardı olarak belirlemiştir. Bununla birlikte, Symfony gibi diğer projeler bu pratiği tavsiye etmemektedir.

Yoda Notasyonu ve Okunabilirlik

Yoda notasyonunun okunabilirliği, kişinin tercihlerine bağlı olarak değişir. Bazılarına göre bu notasyon kodun anlaşılmasını zorlaştırırken, bazıları ise bu notasyonun kullanılmasının olası hataları önleyerek kodun genel kalitesini artırdığını düşünmektedir. En iyi uygulama genellikle ekibinizin ve projenizin ihtiyaçlarına ve tercihlerine bağlıdır.

Örnek:

Yoda notasyonu olmayan hali:

if (username === "Yoda") {
  console.log("May the Force be with you");
}

Yoda notasyonu olan hali:

if ("Yoda" === username) {
  console.log("May the Force be with you");
}

Sonuç olarak, Yoda notasyonu, programlama tarzı ve kodlama standartları üzerine ilginç bir konudur. Kullanımı kişisel tercihler ve belirli projelerin gerekliliklerine bağlıdır. Ancak, her iki durumda da, kodun okunabilirliği ve anlaşılabilirliği en önemli faktör olmalıdır.

Kaynakça:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir