Daha Temiz Kod: Switch Case ile Object Mapping’in Karşılaştırılması

Bilal Karakollu
3 min readNov 26, 2023

--

switch case or object mapping

Switch Case Yapısının Temel Özellikleri

switch case yapısı, çok sayıda koşulu tek bir yapı altında kontrol etmek için kullanılır. Bu, bir değişkenin alabileceği çeşitli değerleri karşılaştırarak, her birine özgü bir işlem gerçekleştirmek için idealdir.

switch case, karşılaştırılan değerlerin yanında case anahtar kelimesini kullanır. Bu, kodun okunabilirliğini artırır ve birden fazla if-else ifadesine göre daha düzenli bir yapı sunar.

Switch Case için örnek kod bloğu:

function islemYap(durum: string): void {
switch (durum) {
case 'durum1':
console.log('Durum 1 işleniyor');
break;
case 'durum2':
console.log('Durum 2 işleniyor');
break;
case 'durum3':
console.log('Durum 3 işleniyor');
break;
default:
console.log('Default durum');
}
}

// Kullanım Örnekleri
islemYap('durum1'); // "Durum 1 işleniyor" çıktısını verir
islemYap('durum4'); // "Default durum" çıktısını verir

Object Mapping Yapısının Temel Özellikleri

Object Mapping, TypeScript ve JavaScript’te yaygın olarak kullanılan bir programlama modelidir. Bu yaklaşımda, anahtar-değer çiftlerini içeren bir nesne (object) kullanılır. Anahtarlar belirli durumları veya senaryoları temsil ederken, değerler bu durumlara karşılık gelen fonksiyonlar veya işlemlerdir. Object Mapping, özellikle birden fazla durumun veya koşulun yönetilmesi gerektiğinde switch case yapısına alternatif olarak kullanılır ve daha modüler, esnek ve sürdürülebilir kod yazımını destekler.

Object Mapping yapısı için örnek kod bloğu:

type Islem = () => void;

const islemler: Record<string, Islem> = {
'durum1': () => console.log('Durum 1 işleniyor'),
'durum2': () => console.log('Durum 2 işleniyor'),
'durum3': () => console.log('Durum 3 işleniyor'),
'default' : () => console.log('Default durum'),
};

function islemYap(durum: string): void {
const secilenIslem = islemler[durum] || islemler['default'];
secilenIslem();
}

// Kullanım Örnekleri
islemYap('durum1'); // "Durum 1 işleniyor" çıktısını verir
islemYap('durum4'); // "Default durum" çıktısını verir

Okunabilirlik

Switch Case:

  • Artılar: switch case yapısı, özellikle az sayıda durum için oldukça anlaşılır ve okunabilir olabilir. Her case bloğu açıkça belirtilmiş ve ayrılmıştır.
  • Eksiler: Ancak, durum sayısı arttıkça, switch case yapısı daha karmaşık ve anlaşılması zor hale gelebilir.

Object Mapping:

  • Artılar: Object Mapping, özellikle büyük ve karmaşık durum setleri için daha okunabilir olabilir. Anahtar-değer çiftleri, kodu düzenli ve temiz tutar.
  • Eksiler: Eğer anahtar-değer çiftlerinin mantığı çok karmaşıksa, bu yapı da anlaşılması zor olabilir.

Sürdürülebilirlik

Switch Case:

  • Artılar: Küçük projeler veya basit durum makineleri için switch case yapısı yeterli olabilir.
  • Eksiler: Kod tabanı büyüdükçe, yeni caselerin eklenmesi ve mevcut kodun bakımı zorlaşabilir. Ayrıca, break unutulduğunda beklenmeyen hatalar oluşabilir.

Object Mapping:

  • Artılar: Kodun genişletilmesi ve bakımı daha kolaydır. Yeni durumlar eklemek veya mevcutları değiştirmek basittir ve yan etkileri azaltır.
  • Eksiler: Nesne yapısını ve ilişkilendirmelerini anlamak başlangıçta karmaşık olabilir, özellikle yeni başlayanlar için.

Modülerlik

Switch Case:

  • Artılar: Basit ve doğrusal kod akışı için iyi bir seçenektir.
  • Eksiler: Kod tekrarını önlemek ve modülerlik sağlamak için ekstra çaba gerektirebilir.

Object Mapping:

  • Artılar: Yüksek derecede modülerlik sunar. İşlevler ve işlemler kolayca yeniden kullanılabilir ve değiştirilebilir.
  • Eksiler: İşlevler arasındaki bağlantılar karmaşık hale gelebilir, özellikle birçok bağımlılık ve yan etki varsa.

Sonuç:

Bu makalede, switch case ve Object Mapping yaklaşımlarını karşılaştırdık. Object Mapping'in, özellikle geniş ve değişken durumlarla başa çıkmada, kodun okunabilirliğini ve sürdürülebilirliğini artırma potansiyeline sahip olduğunu gördük. Her iki yaklaşım da belirli durumlar için avantajlar sunarken, modern web uygulamalarının karmaşıklığı göz önünde bulundurulduğunda, Object Mapping daha esnek ve genişletilebilir bir çözüm olarak öne çıkıyor.

--

--

Bilal Karakollu
Bilal Karakollu

Written by Bilal Karakollu

Exp:Nesine.com, Uludağ Sözlük, İnci Sözlük, Wingie Enuygun

No responses yet