• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    AXTHEB
    AXTHEB --- ---
    VOY: Nope. Stačí překonat ten vstupní pocit, že víš jak na to, nastudovat si to a pak (s výjimkou onoho vytváření testů k neotestovanému cizímu kódu) můžeš to kolečko red/green/refactor použít úplně kdykoliv.
    VOY
    VOY --- ---
    AXTHEB: To z nej dela skvelou metodiku do slonovinove veze :-)
    SULTHAN: Zminil jsem hlavne react, protoze tam byl jednu dobu popularni enzyme a pak i ta react testing library. A z toho mam porad trochu PTSD, videl sem moc testu co testovaly jestli se ve vyslednem stromu objevi veci, ktere predtim byly deklarativne specifikovany. Takovy test veru moc hodnoty neprinese. To cele doprovazene mockovanim ruznych globalnich zavislosti. Uf. Muselo to ven.
    SATAI
    SATAI --- ---
    AXTHEB: to platí o většině věcí ;-)

    Ale hlavně by se z toho neměla ideálně dělat ideologie, podle které je jiné psaní testů špatně
    AXTHEB
    AXTHEB --- ---
    VOY: Zásadní problém TDD je, že je hrozně těžké ho dělat - zejména proto, že spousta lidí si myslí, že ví jak na to (ale nedělá to), a když se o to pokusí, tak jim to nejde. Protože neví jak na to.
    JARDABEREZA
    JARDABEREZA --- ---
    ALMAD: React má několik jednoduchých principů co se jak dělá a pak se to jen opakuje do zblnutí. A snaží se zůstat v těch mantinelech. Ale vlastně je to fajn. Chceš UI, uděláš vždycky ty stejné kroky, máš UI. A na internetu jsou snad statisíce příkladů.
    ALMAD
    ALMAD --- ---
    SULTHAN: Pardon, tim “tyhle veci” sem myslel tu interakci mezi testama a AI a ten AI assisted vyvoj.

    Nevim presne proc, ale Reactisti jsou z moji zkusenosti s tema toolama vyrazne spokojenejsi, nez vsichni ostatni. Tipuju ze je to kombinace dostatku trenovacich dat a urcity syntakticky…ahem…neuspornosti a repetitovnosti toho jak se pise, ze to predikuje dobre a setri dost toho boilerplatu…
    SADY
    SADY --- ---
    SULTHAN: tak to opakovane zazivam celkem pravidelne posledni rok, bohuzel ty projekty musim dostat z technologicjeho dluhu do produkce k nam na k8, vcetne prepisu BE a FE, je to ryzi peklo a pouze jistej sklon k perfekcionalite, odpovednosti za provoz a sklony k sebeposkozovani mi umoznuji svuj ukol splnit

    btw. zdravim byvale kolegy, kteri vi o cem mluvim
    SULTHAN
    SULTHAN --- ---
    VOY: Upřímně, to se týká prakticky každé FE komponenty, není to nijak specifické pro react. Na jednom projektu třeba máme jednoduché testy storybooku oproti mockům a jejich výsledek se screenshotuje. Nic to moc nebrzdí, ale při pull requestu člověk musí projít diffy a manuálně schválit všechny změny.
    Typový systém (tj. asi mluvíme o typescriptu) bych už dnes považoval za standard.

    Pro pobavení, teď nedávno mě ve firmě přizvali na post-mortem jednoho incidentu na projektu s obrovským technickým dluhem. Při buildování jim padala instalace NPM dependencí. Indové to vyřešili tak, že smazali package-lock a commitnuli to bez něj. Jako fakt. A spolu s tím začali řešit, že bude potřeba updatnout knihovny a mě si přizvali, abych jim poradil "jak na to". Když jsem zjistil, že tam mají React 13, který byl vydaný před 10 lety a v podstatě to ještě byla beta verze, tak jsem se jim na to vybodnul.
    VOY
    VOY --- ---
    SULTHAN: Za sebe bych rekl hlavne to, ze kdyz clovek nejakym zpusobem unit testuje reactove komponenty tak casto dojde do stavu, ze ho ty testy znacne brzdi v refaktorovani. Za sebe volim radeji kombinaci kontroly typovym systemem a E2E testu. Tam clovek ma z me zkusenosti vetsi jistotu, ze kdyz testy prochazi tak veci opravdu realne funguji.
    SULTHAN
    SULTHAN --- ---
    ALMAD: to by mě strašně zajímalo, co je specifického na Reactu?

    Každopádně ano, mezi FE a BE je na testech fakt velký rozdíl. Jsem toho názoru, že na čistém FE unit testy v praxi ani psát nejdou - respektive to jde maximálně ojebat nějakým snapshotováním, ale ne tak, aby ty testy šly napsat dopředu před implementací.
    SATAI
    SATAI --- ---
    VOY: prostě je to šikovné pravidlo, se kterým je potřeba zacházet jako se všemi šikovnými pravidly: "to záleží" ;-)
    ALMAD
    ALMAD --- ---
    VOY: Jo, ale to co pisu plati i o testech co se napisou po kodu.

    A znovu tady vytahnu ze vnimam velkej rozdil mezi tim, jak tyhle veci fungujou na BE, FE a pak ve specialni kategorii “React” :)
    VOY
    VOY --- ---
    ALMAD: Nejsem sokovany. Proto mi prijde vsechna ta ideologie o testech co se nesmi napsat pokud neprochazi ponekud akademicka. Zaroven fandim TDD, ale obavam se, ze jsem za svou karieru v tech potkal opravdu naproste minimum lidi co podle nej jedou. Myslim, ze to neni nahoda nebo vyber firem, proste to z nejakeho duvodu ve stretu s realitou neni moc prakticke. Smutnym faktem je, ze kdyz se blizi deadlines a zacne jit do tuheho tak testy se seskrtaji jako prvni. Znovu rikam, je to pouze pozorovani reality, ne muj nazor.
    ALMAD
    ALMAD --- ---
    VOY: Ano. Asi te to prekvapi, alr takovi lide existuji :D
    CERMI_FOX
    CERMI_FOX --- ---
    VOY: tomu se rika stret reality s ideologii :-)
    VOY
    VOY --- ---
    Urcite se vam nekdy stane, ze prijdete ke kodu, ktery funguje, chcete do nej udelat nejake zmeny a nema zadne testy. Pak prirozene clovek dopisuje testy, ktere prochazi. Chce to nepochybne obezretnost, aby skutecne testovaly co maji, ale takove momenty taky prichazi. Vetsinou AI naznacim kodem co sam napisu jak bych si to asi predstavoval hlavne co se tyce mockovani a pak uz to typicky funguje slusne. From scratch bychom se ale asi daleko nedostali a nebo s hroznou kvalitou kodu.
    JARDABEREZA
    JARDABEREZA --- ---
    AXTHEB: Já TDD dělal jenom když jsem psal binární parser a bylo přesně jasné co je vstup a výstup už odzačátku. (ale nic proti lidem co TDD dělají všude). Asi si to neumím promyslet tak moc dopředu v souvislostech. Anebo je naše práce rozdílná a dává to u tebe větší smysl.

    Takže pak ty testy dělám proto, abych mohl změnit/refaktorovat všechno s jistotou, že mi to pak někdo naomlátí ohlavu a nevysype na mě pytel chyb :-D

    Anebo u týmové práce při nastavené pipeline je pak jasně vidět čí comit to rozbil :-D
    SULTHAN
    SULTHAN --- ---
    Teď jsem nedávno dělal review pull requestu, kde byly FE testy (playwright) vygenerovaný přes AI, a bylo to utrpení. Jako jo, nějak se to UI prokliká, ale kód to byl příšerný - elementy se hledaly přes nějaké strašně složitě zanořené CSS selektory a byly tam úplně WTF věci, jako třeba try-catch uvnitř testu (asi aby test nefailnul) nebo prostý return (konec testu) pokud se element nenašel.
    AXTHEB
    AXTHEB --- ---
    VOY: No, každý test, který napíšeš a rovnou prochází je test, který by neměl existovat.
    Test píšeš buď abys ukázal jaká funkcionalita ti chybí a dopsal jí, nebo abys ověřil, že nějaká chyba je opravdu to, co myslíš že je a pak jí opravil.
    CERMI_FOX
    CERMI_FOX --- ---
    VOY: bud jak pise Jardabereza, nebo jet dvojfazove - nejdriv at vygeneruje md s testcasama, ty mu promazes a opravis a pak ho nechas at podle toho ty testy udela. Je fajn zacit u jednoho dvou, u nej odladit mocky a strukturu a pak ho pustit na ty ostatni
    Kliknutím sem můžete změnit nastavení reklam