Javascript Saf ve Saf Olmayan Fonksiyonlar

Javascript Saf ve Saf Olmayan Fonksiyonlar

2019-12-11    

Aslında javascript ile yazılım yaparken Pure Functions ve Impure Functions çok kullanılan fakat çokta bilinmiş kavramlar değildir. Bu yazıda basit olarak bu iki kavramı ele alacağız.

Javascript dilinde saf ve saf olmayan fonksiyonlar arasındaki farkı bilmek çok önemlidir. Daha temiz ve test edilebilir kod yazmaya etkisi yüksektir. özellikle redux kullandığımız uygulamalarda çok önemlidir.

Pure (Saf) Functions

  • Saf fonksiyonlar kendi argümanlarına bağlı olarak yeni bir değer döndüren fonksiyonlardır.
  • Veritabanı yada io gibi yan etkilere sahip istekler içermezler.
  • Sadece argümanlarına bağlı yeni bir değer hesaplaması yaparlar.
  • Aynı argümanlarla birden fazla kere çağrıldığında hep aynı değeri döndürür.
  • Ayrıca argümanların değerlerini değiştirmezler. Bunun yerine yeni bir değer döndürürler.
const greet = name => {
  return "Merhaba" + name;
};

const greetAll = names => {
  return names.map(greet);
};

Impure Functions

  • Veritabanı yada ağ bağlantı istekleri içebilirler.
  • Gerektiğinde DOM güncellemesi yapabilirler.
  • Kendilerine gelen argümanların değerlerini değiştirebilir.
const greet = name => {
  makeApiRequest(name);
  return "Merhaba" + name;
};

const greetAll = names => {
  for (let i = 0; i < names.length; i++) {
    names[i] = greet(names[i]);
  }
};