Sitemap
terlan sireliyev

terlan sireliyev

Side effect

2 min readMay 12, 2025

--

“Avoid Side Effects” — proqramlaşdırmada çox vacib bir prinsipdir, xüsusilə functional programming (funksional proqramlaşdırma) kontekstində.

🔹 “Side Effect” nədir?

Side effect (yan təsir) — bir funksiyanın öz daxilindəki əməliyyatdan kənarda hansısa dəyişiklik etməsidir. Başqa sözlə, funksiya çıxışdan əlavə olaraq proqramın digər hissəsinə təsir edirsə, bu artıq “side effect” sayılır.Yani impure funksiya kimi işləyir.

🔸 Nümunələr — Side effect olan hallar:

Aşağıdakı əməliyyatlar side effect sayılır:

  • Qlobal dəyişəni dəyişmək
  • Console-a nəsə yazmaq (console.log)
  • API-ya sorğu göndərmək
  • DOM-u dəyişmək (səhifədə element əlavə etmək)
  • Fayla yazmaq/oxumaq
  • Database əməliyyatları

🔹 Side effect olmayan funksiyaya nümunə (Pure Function):

Bu funksiya:

  • Eyni input üçün həmişə eyni nəticəni verir.
  • Xarici dünyada heç nəyi dəyişmir.
    ➡️ Bu, pure function-dur və side effect yoxdur.

Side effect olan funksiya:

Get terlan sireliyev’s stories in your inbox

Join Medium for free to get updates from this writer.

Bu funksiya:

  • Qlobal count dəyişənini dəyişir
  • Console-a yazı çıxarır
    ➡️ Yəni iki yan təsiri var.

✅ Niyə “Side Effect”lərdən çəkinmək lazımdır?

  1. Kodun təmizliyi azalır
    — Funksiya bir neçə yerdə dəyişiklik edirsə, onu başa düşmək və təmir etmək çətinləşir.
  2. Test yazmaq çətin olur
    — Yan təsirli funksiyalar test edilərkən nəticə dəyişə bilər.
  3. Debug çətinləşir
    — Bir bug haradan qaynaqlandığını tapmaq çox vaxt aparır.
  4. Kodun təkrar istifadə imkanları azalır
    — Pure funksiyalar istənilən yerdə rahat istifadə edilə bilər.

🧠 “Avoid Side Effects” harada vacibdir?

  • React komponentləri (xüsusilə useEffect-dən düzgün istifadə zamanı)
  • Redux və ya useReducer kimi state idarəedicilərində
  • Unit test yazarkən
  • Server-side kodlarda, məsələn Node.js backend-lərində

Side effect-ə dair bir neçə kod parçası:

Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size

--

--