• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    Diskuze o obzive programovanim pro starsi a pokrocile.
    rozbalit záhlaví
    FARIN
    FARIN --- ---
    NOHOUS: to by šlo přes Proxy bez kopírování
    SULTHAN
    SULTHAN --- ---
    NOHOUS: Ok, když už teda chceš mít lokální kopii velkých dat (což není úplně ideální návrh), tak do určité velikosti dat (řekněme do délky 10k) je pořád nejlepší udělat shallow-copy listu a pak udělat změnu na té kopii a dosadit kopii do dat. Je to nejjednodušší a zabere to maximálne pár ms.
    Pokud máš dat víc, tak hodně záleží na tom, jaké operace chceš přesně dělat. Například - pokud v listu budeš jen měnit data ale nebudeš přidávat a odebírat nové položky, nemusíš to implementovat jako prosté pole, ale můžeš vymyslet o něco složitější strukturu.

    Samozřejmě, jak jsem řekl už dřív, v Reactu tě nikdo nenutí používat immutables, tj. klidně si to můžeš zmutovat napřímo - akorát pak musíš pořešit detekci změn - což je nesnažší udělat přes sekundární proměnnou last-updated/version, kterou změníš pokaždé, když změníš pole.
    Tyhle věci se v Reactu naprosto běžně používají, ale jelikož je to víc low-level, tak se to často skrývá do nějakých custom hooks.

    A tím bych tohle offtopic téma uzavřel.
    NOHOUS
    NOHOUS --- ---
    SULTHAN: a ted chci zmenit jednu polozku uvnitr toho listu v reakci na update inputu v radku komponenty. Jsem zvedav, zda se ti to povede asymptoticky rychleji, nez v O(n) (n je delka listu)
    SULTHAN
    SULTHAN --- ---
    NOHOUS: tvl, za prvé jsme těžce offtopic, zadruhé to popisuješ tak abstraktně, že v tom není vidět žádná složitost.
    Ale - předpokládejme třeba, že máš data jako list (?) a že podmnožina je teda nějaký sublist udaný indexem a délkou? Mno, tak komponenta, která zobrazuje tu podmnožina má na vstupu ten list, index a délku.
    Nikde žádné kopírování nevidím.
    NOHOUS
    NOHOUS --- ---
    SULTHAN: dobre, tak mi rekni, jak bys to resil ty? Chci lokalni kopii dat v klientovi a zobrazovat bezpecne viditelnou podmnozinu bez kopirovani (a mit moznost delat v datech zmeny). Ale ja frontend developer nejsem, ja jenom zasnu.
    SULTHAN
    SULTHAN --- ---
    NOHOUS: "správně"? v programování máš vždycky víc možností a tvoje otázka je tak obecná, že na ní nelze odpovědět. Na první pohled to zní jako něco, co každý FE programátor dělá 20x denně a nevidím na tom nic složiého.
    NOHOUS
    NOHOUS --- ---
    SULTHAN: cili jak se teda "spravne" resi v reactu zobrazeni podmnoziny vetsiho souboru dat pri zachovani single source of truth tech dat?
    SULTHAN
    SULTHAN --- ---
    NOHOUS: Hele, to zní spíš jako špatný návrh datového modelu programátorem než že by to mělo něco společného s Reactem nebo Javascriptem.
    NOHOUS
    NOHOUS --- ---
    SULTHAN: mluvim o datech, ktera predstavuji stav frontendu. Defaultne via useState() maji koren v komponente, ktera je zaroven jejich zobrazovacim korenenem. Pokud takovy data chces ukazovat na vic mistech, je z toho glorifikovany globalni stav. Ano, mame useContext.

    Pokud ti prijde normalni pri updatu jednoho radku v tabulce zkopirovat 10k referenci, ty novy pak jeste se starejma porovnat a na zaver vypustit na puvodni sadu garbage collect, tak mne teda ne, protoze to mel bejt jeden callback - klidne odlozenej, pokud chces mit zmenu stavu atomicky.
    SULTHAN
    SULTHAN --- ---
    NOHOUS: Vůbec netuším, o jakém datovém modelu kopírující něco mluvíš, ale jsem si dost jistý, že tam nic takového není, jelikož React určitě nikomu neříká, jak se má dělat datový model.
    Obávám se, že immutables je dobrá věc prakticky v každém programovacím jazyku a upřímně - React je nijak zvlášť neprosazuje ani na nich není závislý (i když dost věcí díky vlastnostem Javascriptu dost zjednoduší).
    NAVARA
    NAVARA --- ---
    NOHOUS
    NOHOUS --- ---
    nicmene to vysvetluje, proc web vypada jak vypada
    NOHOUS
    NOHOUS --- ---
    SULTHAN: datovy model kopiruje strukturu prezentacni vrstvy? imutabilita - tam asi nekdo vazne upadl na hlavu; takhle pocitace nefungujou
    ALMAD
    ALMAD --- ---
    VOY: Tim sem se utěšoval první dekádu, ale teď už je potřeba si přiznat, že to bude něčim jinym nahrazovaný dýl, než jQuery
    SULTHAN
    SULTHAN --- ---
    NOHOUS: to je dost odvážné tvrzení. Jednoduchý na naučení i používání, kód se v tom píše přehledně. Fakt netuším, z čeho vychází tvoje hodnocení.
    JARDABEREZA
    JARDABEREZA --- ---
    KOJA: mě llm radilo jak nalinkovat knihovnu, co kde nastavit a další základy a povedlo se. Bez toho bych byl marný. Jenže c++ ma dlouhou historii, může se učit na 25 let starým kódu.
    KOJA
    KOJA --- ---
    JARDABEREZA: Me pomahaji LLMka. Naposled jsem se treba ptal jak se v c++ dela double dispatch kterej je rozsiritelnej v out-of-tree kodu protoze uz si to zase nepamatuju.
    KOJA
    KOJA --- ---
    JANFROG: To, ze si kazdy projekt vybere z jazyka svuj subset co se jim libi a naoplatku si pridaji nejake language extensions a veci jako -fno-exceptions nebo -fno-rtti uzasne zpestruje nudny zivot vyvojaruv.
    VOY
    VOY --- ---
    NOHOUS: Je to jen technologie. Kazda technologie ma svoje nedostatky a temer kazda bude za par let nahrazena necim jinym s jinymi problemy. Nema smysl si kvuli tomu kazit naladu :-).
    JANFROG
    JANFROG --- ---
    KLEINZACH: Ale jo, ja s tebou i souhlasim. Doted nezapomenu na tu frustraci kdyz mi jedno PR s moji genialni sablonou neproslo kvuli nejake obskurni chybe E12345 a co to znamena jsem nedokazal dohledat, protoze veskera dokumentace je hodne dobre ukryta pred lidma z venku (pokud neni rovnou classified :-) Couvam kazdej den.

    U me je to spis takova ta radost z neceho noveho, uzivam si kdyz vidim jak neco lze v C++ vyresit elegantne co jinde byl desnej voser. Navic jsem spadnul do projektu, co jedou uz delsi dobu (~30 let :-) a tam proste nejak vykrystalizoval ten "mensi jazyk" a tak pouzivam ten a moc si nevymyslim (vetsinou :-) Verim, ze az to budu delat 20 let, uvidim to stejne jak ty. Ale do te doby si hodlam uzivat malych radosti :-)
    JARDABEREZA
    JARDABEREZA --- ---
    KLEINZACH: kolik z toho cca zvladne vychytat nějaký linter?
    KLEINZACH
    KLEINZACH --- ---
    JARDABEREZA: clovece toho je tolik, ze musely vzniknout 'core guidelines' :) https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

    KOJA: hehe, taky uz sem musel parkrat vycouvat :) pripadne si vypomoct preprocesorem i prestoze sem to total nemel v umyslu.
    Kliknutím sem můžete změnit nastavení reklam