Testů tam moc nemám, ale obávám se, že bych se bál úplně stejně, i kdyby tam ty testy byly (a nemám tým lidí, aby mi je udržoval). Popravdě testovat mi připadá rozumné algoritmy/parsing, ale věci typu "vezmi data, pošli je někam", tam toho moc na testování není.
Právě že ano. Zrovna u podobných aplikací je třeba mít na všechno replikovatelné testy na testovacích datech.
Jasně, všichni máme neomezený čas a rozpočet, obzvlášť, když děláš projektík zadarmo pro nějakou komunitu. Testovat věci ve stylu "funkce vrátí obsah tabulky" je fakt na pytel - ale samozřejmě v node nebo pythonu to má smysl, protože se ti snadno může stát, že třeba nějaký atribut zapomeneš vrátit. Když máš v těch typovaných jazycích typ endpointu "Action", tak prostě tohle testovat víceméně nemá smysl, protože to prostě vždycky vrátí celou Action se všemi atributy. Ne, že by se někdy nějaký kix v tomhle stát nemohl, ale ta cost-benefit analýza pak najednou vychází jinak. Navíc když to chvíli nebude fungovat, tak se svět nezboří (byť to používá tak různě docela dost lidí...)... a ty testy fakt udržovatelnosti toho kódu moc nepomůžou - kdysi jsem si dal práci a napsal testy k jednomu pythoním projektu (ne-webovému) - vzhledem k omezenému přístupu na cílovou platformu to pomohlo odchytat při vývoji spoustu chyb. Ale pro další údržbu už jsem ty testy ignoroval, protože to prostě nemělo smysl....
Komedii side efektu myslim komedii se side efektama v dnešních "pure" fp nádherách. O js sem nemluvil, to je oop
Mně to připadá, jak kdybys kritizoval FP nádhery, že ty použitelné nemaj dependent-types. No nemají. Java/JS taky ne. A co? Řízení side-efektů funguje na IO/pure granularitě, a nebo si pak můžeš zvolit nějaký přístup, který tu granularitu zlepšuje; záleží na tom, co od toho chceš. Některé věci se dají řešit celkem v pohodě, jiné moc ne. Pořád nechápu praktický dopad na psaní webového backendu pro aplikaci velikosti trello v kontextu alternativy typu node.
takže co byste doporučil pro aplikaci v haskellu, která potřebuje rozumné webové rozhraní a ústředním prvkem jejího rozhraní je treeview s lazy-loaded větvema (nyní fancytree)?
Asi nerozumím otázce... jako že máte aplikaci v haskellu a teď k ní budete dělat rozhraní?