1
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od BoneFlute kdy 02. 10. 2025, 23:34:03 »Nedávno jsem tady do nějaké diskuse napsal, že generování XML je někdy lepší si napsat sám, ručně, bez knihoven a hned se seběhli místní trollové, co že si to dovoluji si takovou věc psát sám… Přitom to generování XML je výrazně jednodušší než parsování (byť si nepíšeš vlastní parser asi zpracováváš SAX události nebo pracuješ nad DOMem nebo něco podobného). (jen dodávám, že cílem toho mého generátoru nebylo generování libovolného XML, ale určité podmnožiny, která je pro moje potřeby dostačující – důležité je, aby výstup bylo validní XML)
Ty výhrady k tomu generovanému kódu částečně chápu. Sám jsem s tím bojoval u Swaggeru resp. OpenAPI, kde generátor nebyl dost zralý, některé věci to nepodporovalo vůbec nebo to generovalo nesmysly… to bylo dost peklo. Něco vyřešili autoři generátoru v novějších verzích, něco jsme vyřešili sami vlastními šablonami. Ale i tak si myslím, že je většinou lepší si jednou odladit šablony/generátor než to psát pokaždé ručně. A JAXB je oproti tomu mnohem zralejší a spolehlivější technologie (byť to zemětřesení, které přišlo po Javě 8, s tím nepěkně zamávalo).
Nevím, proč by zrovna generování xmlka nemělo jít lepením stringů. Do určtié velikosti projektu je to naprosto good enough.
Jedna ze zkušeností, co mne v tomhle ovlivnila, byla, když jsem kdysi pozoroval lidi, kteří seděli asi dva metry od sebe, jeden psal server v Javě, druhý psal klienta v JavaScriptu a neustále řešili, že ten druhý posílá atribut s „jiným názvem“ nebo „starým způsobem“… v každé verzi byly chyby tohoto typu a pořád se na to plýtval čas a vyvolávalo to hádky. Mezi sebou si sdíleli dokument ve Wordu, ve kterém měli příklady, jak se má služba volat… Takže když mi dneska někdo tvrdí, jak nepotřebuje schéma, a že je to prý jednoduché a že stačí napsat pár příkladů a všem to bude jasné… tak se mi otevírá pomyslná kudla v kapse, protože vím, jak to dopadá. Přitom tohle se v oboru řeší od pradávna a obecně se to jmenuje IDL (interface description language). Konkrétních implementací je spousta, ale podstatná je ta myšlenka, že máš nějakou strojově čitelnou specifikaci, která definuje ten kontrakt, a ze které obě strany vycházejí.
Ale každopádně, pokud si píšeš parser ručně ale máš tu specifikaci a ne jen pár příkladů, tak je to ještě ten lepší případ.
To jsme takhle s kamarádem dělali jeden projekt. Měl jsem nápad, a on si z toho udělal bakalářku. To jsem si zavařil. Rozvíjel jsem ten nápad, a on mě furt otravoval, jestlu už to bude hotové, a já mu furt měl tendenci měnit specifikaci, protože to jinak nešlo.