76
Vývoj / Re:Rust - serde/bincode serializacia/deserializacia dat
« kdy: 21. 12. 2021, 12:34:06 »
OP: Došel jsi prosímtě k něčemu? Zafungoval Ti ten "untagged"?
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
use bincode;
use serde::{Serialize, Deserialize};
type Version = u8;
type BatteryHealth = u8;
#[derive(Debug, Serialize)]
#[serde(untagged)]
pub enum MessageBodyType {
Version(Version),
BatteryHealth(BatteryHealth),
}
fn main() {
let body = MessageBodyType::BatteryHealth(1);
let encoded: Vec<u8> = bincode::serialize(&body).unwrap();
println!("Result {:?}", encoded);
}
Dekuji za potvrzeni, ze rust neni neco co by melo hardcore/lowlevel C programatory zajimat
Tolik s**ni s tim, a jeste si to dela co chce, a ne co chci ja mi za to fakt nestoji.
ani mají i air se stejným HW, pokud to chceš přenášet. Ano, desktop pod stolem, ale ve firmách a domácnostech je ale běžný zavřený notebook na stole s externím monitorem, klávesnicí a myší, přesně tak to i vypadá v kancelářích kam se jen podívám. Mac mini suchým zipem přilepíš ze zadu na monitor a máš prázdný pracovní stůl.
pasivně chlazená M1 od Applu je zatím dost unikát, záleží na jaký use case, ale dá ti dost zabrat postavit něco obdobného za podobnou cenu. V rychlosti se asi vyrovnáš, jen hluk a velikost bude nesrovnatelná. Zase tam máš vazbu na MacOS, teda ikdyž to vypadá, že Arch už tam pomalu funguje se vším potřebným.
Každopádně to je asi jedno, nechtěl jsem rozpoutat náboženskou diskuzi, přišlo mi to jako vhodná alternativa, tak jsem jí zmínil mezi ostatními. Kvas chce něco s Ubuntu, to tady nepůjde.
Mac mini má ty parametry poměrně fixní, 8 GB ram, 512 GB disk. Dříve měli klasické firemní notebooky v cenách 40 - 60 tis, např. Dell Precision 5540 (intel i7-9850H, 16GB RAM, 512GB SSD) nebo teď aktuální, které jsou vedle Mac mini, Precision 7550 (intel i7-10850H, 16GB RAM, 512GB SSD). Ten rozdíl v rychlosti je značný. Notebooky stejně stojí na stole a nikdo s nimi nehejbe, takže malý mac mini je vlastně evoluce a způsob jak uvolnit místo na stole.
Nejsem nějaký velký fanoušek Macu, pracuji primárně s linuxem a BSD, jen také nejsem tvrdým odpůrcem a vidím, že to kolegům funguje dobře a jsou s tím spokojení.
Co nový mac mini? Pasivně chlazený, na vývoj java/spring to není problém (používají to kolegové přesně na tohle). Výkon je naprosto úžasný, kompilace java aplikací přes maven jim z 5 minut klesla na minutu a půl, a to měli před tím dost drahé stroje. Má pouze malou paměť, ale zase Mac OS funguje trochu jinak a umí využívat daleko více rychlý disk jako cache.
Ahoj, jaké používáte stoje na vývoj? Aktuálně řeším jak se vejít do rozpočtu 20k bez DPH...
dokud ten generovany kod nekdo necommitne do repositare nebo nedej boze nezacne rucne editovat tak mi generovany kod nevadi... v opacnem pripade souhlasim, ze je to zlo
Přijde mi, že hledáte cestičky, jak normální kód negenerovat.
generovany kod je zlo.
....
vubec nevis o cem pisu.
Pánové, jsem dost překvapený, co řešíte. Když se teda vrátím k Rustu, tak tam chci vidět něco jako normální strukturuPřesně tohle “řešíme”.
A kde to takto funguje?To jo, taky se to často děje, ale jak to souvisí s OpenAPI?muzete mit satickou kontrolu podle API specifikace, bez nunosti prepisovat tu specifikaci do daneho jazyka. Staticky analyzer kodu muze brat informace napriklad z JSON schematu. nebo z protobuffer specifikaci. Nemusite generovat kod.
Ono ani tak nejde o typový systém, jde to řešit buď reflexí nebo něčím jako rustí makra.
Teď už se generuje okolo API všechno, SOAP, Protobuf, OpenAPI... (člověk tak získá nezávislost na konkrétním jazyce, to je plus).
generuje se jen kvuli staticke typove kontrole, ta aby fungovala, potrebujete mit specifikaci ve zdrojovem kodu daneho jazyka, ale neni problem precist napriklad protobuf specifikaci a vygenerovat dane tridy dynamicky
existuji reseni jak obejit nutnost generovani kodu pro ziskani staticke kontroly. MyPy ma pluginy, AFAIK F# ma type providers coz resi podobny problem
Takže toCitaceje peklo a patří na smetiště IT dějinje čistě proto, že SOAP je neefektivní? Nebo je mu vyčítáno i něco jiného?