Sobes.tech
Junior

Co jsou vedlejší účinky v kontextu programování?

sobes.tech AI

Odpověď od AI

Vedlejší účinek je změna viditelného stavu programu, která nastává mimo návratovou hodnotu funkce.

Hlavní typy vedlejších účinků:

  • Úprava globálních proměnných nebo stavu objektů.
  • Vstup/výstup dat (čtení ze souboru, zápis do konzole, síťové požadavky).
  • Změna obsahu databáze.
  • Vyvolání výjimky, která není uvnitř funkce ošetřena.
  • Změna DOM stromu v prohlížeči.
  • Volání jiných funkcí s vedlejšími účinky.

Příklad čisté funkce (bez vedlejších účinků):

// Funkce pouze sčítá dvě čísla a vrací výsledek
function add(a, b) {
  return a + b;
}

Příklad funkce s vedlejším účinkem (změna globální proměnné):

let total = 0;

// Funkce přičítá hodnotu a mění globální proměnnou
function addToTotal(value) {
  total += value; // Vedlejší účinek: změna globální proměnné
  return total;
}

Dopad vedlejších účinků:

  • Ztěžují testování.
  • Komplikují paralelní provádění kódu kvůli potenciálním závodům.
  • Dělají kód méně předvídatelným a složitějším na pochopení.
  • Mohou porušovat principy funkcionálního programování.

Ve frontend vývoji jsou vedlejší účinky často spojeny s:

  • Manipulací s DOM.
  • HTTP požadavky.
  • Operacemi s Local Storage nebo Session Storage.
  • Prací s API třetích stran.

Řízení vedlejších účinků je důležitým úkolem při budování spolehlivých a udržitelných aplikací. Vzorové přístupy, jako je Redux (se zaměřením na předvídatelné řízení stavu a oddělení vedlejších účinků v akcích/sagách), nebo používání čistých funkcí tam, kde je to možné, pomáhají minimalizovat jejich negativní dopad.