• ú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í
    KLEINZACH
    KLEINZACH --- ---
    MICRO: jsou tam aspon konverzni rutiny (nekde v <codecvt> headerech), ale je to obsolette s tim, ze bud si mame pockat na rok 2035 (just kiddin.. ale ne uplne), nebo pouzit 3rd party (jako libiconv)... yay!

    ale uprimne narodni pismenka jsou hroznej bordel celkove

    JANFROG: ono je to asi dost o tom jakej subset c++ pouzivas. bezny korporatni c++ je asi okej a vzdycky bylo: korporat je takovej stronghold c++. ale uz i tehdy bylo povinnosti kazdyho mit nacteny aspon meyersovy (a jinych) knizky na tema 'jak se o to neporezat a neposrat se z toho' :) ale kdyz z tydle bezpecny ohradky clovek vyleze, tak je to sama nastraha a znacky WIP :) u gamesek clovek dost casto narazi na performance (zmineny rtti, schovany alokace jako treba v std::function, napul dotazeny alokatory atp) a u psani knihoven je to dost podobny (zvlast u tech sablon. napr u variadickych sablon sme v roce 2011 dostali takovou nekompletni kostricku, ktera se pohodlneji pouziva az od c++20 (fold expressions a tak). takze do ty doby clovek musel pouzivat spoustu berlicek a hacku)
    MICRO
    MICRO --- ---
    Myslím, že nic nedemonstruje skomírání C++ víc než to, že v roce 2025 stále nemá prakticky použitelnou podporu pro Unicode; aneb zkus vypsat UTF-8 řetězec do konzole.
    VOY
    VOY --- ---
    ALMAD: Takze rikas, ze v duchodu bude co delat? :-)
    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.
    Kliknutím sem můžete změnit nastavení reklam