Rust - std::ANY alebo lepší návrh?

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #75 kdy: 30. 11. 2021, 13:33:23 »
Len by som chcel podotknut, ze OpenApi sa za desat rokov nedostalo tam, kde bol SOAP na zaciatku. Sice klient sa da generovat, ale ten tooling nie je az taky uzasny (napriklad format datumov je peklo), taktiez sa mi stava, ze klienti pre rozne jazyky sa vygeneruju zle, hoci je jasne dana specifikacia. Plus tomu chybaju niektore veci s autentifikacie, nie je mozne efktivne prenasat metadata a binarne data. Atd...

Dalej REST nie je RPC.

grpc zas chyba specifikacia akohekolvek zabezpecnia a validacie requestov, takze je to obcas dost velka partizancina.

Proste za mna SOAP prosto fungoval a fungoval dobre a vsade. A gzipnute XML je cca rovnako velke ako gzipnuty JSON.

A je vhodne pouzit gRPC na intergraciu dvoch roznych podnikov? lebo v praxy sa s nim stretvam len v komunikacii mikrosluzieb v jednej sieti.



Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #76 kdy: 30. 11. 2021, 13:40:42 »
Aniž bych ostatní text ignoroval, tak:
Chceš poslat zprávu o tom, že Pepa Novák si kupuje ponožky za 10 dolarů
Mě na SOAP oslovilo právě a hlavně to WSDL. Nalinkuju jedno url, a hned mám kompletní knihovnu včetně dokumentace (fandím), typů, etc. A s žádným XML se vůbec nemusím dostat do styku (já vím, v reálu to tak nefungovalo) a nemusí mě zajímat.

To mě třeba na tom RESTu přišlo blbé. Že to sice je štíhlejší, a můžeš si to naimplementovat pár řádky kódu, ale problém je v tom, že vlastně musíš. Nejsou (nebyli) nástroje, které by udělali automaticky knihovnu a mohl jsi ty endpointy volat transparentně.

(Argument s OpenAPI prosím nechte. Pochopil jsem. Nastuduji si.)
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
« Poslední změna: 30. 11. 2021, 13:43:08 od A.P.Hacker »

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #77 kdy: 30. 11. 2021, 14:41:08 »
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

Zkus pochopit, že existují statické programovací jazyky a tam to fakt je jinak a bude.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #78 kdy: 30. 11. 2021, 15:03:00 »
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

Zkus pochopit, že existují statické programovací jazyky a tam to fakt je jinak a bude.
Ono ani tak nejde o typový systém, jde to řešit buď reflexí nebo něčím jako rustí makra.

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #79 kdy: 30. 11. 2021, 15:06:09 »
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

Zkus pochopit, že existují statické programovací jazyky a tam to fakt je jinak a bude.
Ono ani tak nejde o typový systém, jde to řešit buď reflexí nebo něčím jako rustí makra.

teoreicky muze typovy system brat informace z externiho zdroje.


Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #80 kdy: 30. 11. 2021, 15:35:14 »
Ono ani tak nejde o typový systém, jde to řešit buď reflexí nebo něčím jako rustí makra.

Jde to asi různě, ale chceme to?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #81 kdy: 30. 11. 2021, 15:36:04 »
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
Zkus pochopit, že existují statické programovací jazyky a tam to fakt je jinak a bude.
Ono ani tak nejde o typový systém, jde to řešit buď reflexí nebo něčím jako rustí makra.
teoreicky muze typovy system brat informace z externiho zdroje.
To jo, taky se to často děje, ale jak to souvisí s OpenAPI?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #82 kdy: 30. 11. 2021, 15:37:26 »
Ono ani tak nejde o typový systém, jde to řešit buď reflexí nebo něčím jako rustí makra.
Jde to asi různě, ale chceme to?
Reflexi asi nechceme (tedy jen init-time), ale generování kódu z ASTu zabudované přímo do syntaxe jazyka určitě všemi deseti.

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #83 kdy: 30. 11. 2021, 16:42:47 »
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.
« Poslední změna: 30. 11. 2021, 16:47:03 od A.P.Hacker »

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #84 kdy: 30. 11. 2021, 17:17:06 »
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.
A kde to takto funguje?

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #85 kdy: 30. 11. 2021, 18:07:23 »
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.
A kde to takto funguje?

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í strukturu, která je napíchnutá na serde_json nebo něco takového, pokud mi to vygeneruje něco automaticky, tak super, ale rozhodně nechci, aby se mi data někde nějak vzala - stejně někde na vstupu a výstupu budu potřebovat normální explicitně deklarovaný typ.

Úplně chápu, že v Pythonu můžu mít nějaké něco, které má někde __getattr__() nebo něco a magicky tahá z klobouku data, která má v dictu nebo kdoví kde, ale v Rustu to fakt nechci a doufám, že ani nebudu potřebovat.

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #86 kdy: 30. 11. 2021, 18:53:54 »
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.
A kde to takto funguje?

treba https://github.com/erickpeirson/jsonschema-typed


Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #88 kdy: 30. 11. 2021, 19:02:06 »
....

vubec nevis o cem pisu.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #89 kdy: 30. 11. 2021, 19:53:30 »
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.
A kde to takto funguje?
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í strukturu
Přesně tohle “řešíme”.