Sobes.tech
Junior

Čo sú vedľajšie účinky v kontexte programovania?

sobes.tech AI

Odpoveď od AI

Vedľajší účinok je zmena vo viditeľnom stave programu, ktorá nastáva mimo návratovej hodnoty funkcie.

Hlavné typy vedľajších účinkov:

  • Modifikácia globálnych premenných alebo stavu objektov.
  • Vstup/výstup dát (čítanie zo súboru, zápis do konzoly, sieťové požiadavky).
  • Zmena obsahu databázy.
  • Vyvolanie výnimky, ktorá nie je spracovaná vo vnútri funkcie.
  • Zmena DOM stromu v prehliadači.
  • Volanie iných funkcií s vedľajšími účinkami.

Príklad čistej funkcie (bez vedľajších účinkov):

// Funkcia iba sčíta dve čísla a vráti výsledok
function add(a, b) {
  return a + b;
}

Príklad funkcie s vedľajším účinkom (zmena globálnej premennej):

let total = 0;

// Funkcia pridáva hodnotu a mení globálnu premennú
function addToTotal(value) {
  total += value; // Vedľajší účinok: zmena globálnej premennej
  return total;
}

Vplyv vedľajších účinkov:

  • Uľahčujú testovanie.
  • Sťažujú paralelné vykonávanie kódu kvôli potenciálnym súťažiam.
  • Robia kód menej predvídateľným a ťažšie zrozumiteľným.
  • Môžu narušiť princípy funkcionálneho programovania.

V frontend vývoji sú vedľajšie účinky často spojené s:

  • Manipuláciou s DOM.
  • HTTP požiadavkami.
  • Operáciami s Local Storage alebo Session Storage.
  • Prácou s API tretích strán.

Riadenie vedľajších účinkov je dôležitou úlohou pri budovaní spoľahlivých a udržiavateľných aplikácií. Vzorové prístupy ako Redux (so zameraním na predvídateľné riadenie stavu a oddelenie vedľajších účinkov v akciách/sagách), alebo používanie čistých funkcií tam, kde je to možné, pomáhajú minimalizovať ich negatívny vplyv.