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

Ink

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

Přijde mi, že hledáte cestičky, jak normální kód negenerovat.


Ink

  • *****
  • 668
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #91 kdy: 30. 11. 2021, 20:18:18 »

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #92 kdy: 30. 11. 2021, 20:33:26 »
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”.

Přijde mi, že hledáte cestičky, jak normální kód negenerovat.

generovany kod je zlo.

Ink

  • *****
  • 668
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #93 kdy: 30. 11. 2021, 20:38:34 »
Přijde mi, že hledáte cestičky, jak normální kód negenerovat.

generovany kod je zlo.

K tomuto tématu jsem domluvil, nemám potřebu se dohadovat o tom, kdo má rád vdolky a kdo holky, protože nic lepšího z toho nekouká.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #94 kdy: 30. 11. 2021, 22:20:06 »
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”.
Přijde mi, že hledáte cestičky, jak normální kód negenerovat.
generovany kod je zlo.
Zlo je i alkohol a kolik lidí chlastá. Jak by se jinak řešil Protobuf nebo třeba typově bezpečné ORM v C++/Rustu/Go jinak než generováním? Dynamicky to jde ve Smalltalku nebo ObjC a jo, je to elegantní, ovšem bez extrémní dynamičnosti to nejde.


Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #95 kdy: 30. 11. 2021, 23:10:03 »
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”.
Přijde mi, že hledáte cestičky, jak normální kód negenerovat.
generovany kod je zlo.
Zlo je i alkohol a kolik lidí chlastá. Jak by se jinak řešil Protobuf nebo třeba typově bezpečné ORM v C++/Rustu/Go jinak než generováním? Dynamicky to jde ve Smalltalku nebo ObjC a jo, je to elegantní, ovšem bez extrémní dynamičnosti to nejde.
.
jde to pomoci Type Provideru, na ktere jsem daval odkaz. Neco podobneho jsou pluginy v MyPy.

oss

  • ***
  • 245
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #96 kdy: 01. 12. 2021, 08:54:07 »
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”.
Přijde mi, že hledáte cestičky, jak normální kód negenerovat.
generovany kod je zlo.
Zlo je i alkohol a kolik lidí chlastá. Jak by se jinak řešil Protobuf nebo třeba typově bezpečné ORM v C++/Rustu/Go jinak než generováním? Dynamicky to jde ve Smalltalku nebo ObjC a jo, je to elegantní, ovšem bez extrémní dynamičnosti to nejde.
.
jde to pomoci Type Provideru, na ktere jsem daval odkaz. Neco podobneho jsou pluginy v MyPy.

Type Provider je len krajsie meno pre generator kodu, ktory je na urovni jazyka.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #97 kdy: 01. 12. 2021, 15:16:53 »
generovany kod je zlo.

Silná slova. Pokud své tvrzení něčím nepodložíš, tak platí, že "generuj co můžeš".

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #98 kdy: 01. 12. 2021, 15:29:05 »
generovany kod je zlo.

Silná slova. Pokud své tvrzení něčím nepodložíš, tak platí, že "generuj co můžeš".

neni to DRY.

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #99 kdy: 01. 12. 2021, 15:57:02 »
generovany kod je zlo.

Silná slova. Pokud své tvrzení něčím nepodložíš, tak platí, že "generuj co můžeš".

neni to DRY.

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

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #100 kdy: 01. 12. 2021, 16:03:01 »
generovany kod je zlo.

Silná slova. Pokud své tvrzení něčím nepodložíš, tak platí, že "generuj co můžeš".

neni to DRY.

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
To commitování se děje dost často. Editace snad ne, aspoň já se s tím nesetkal.

Ink

  • *****
  • 668
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #101 kdy: 01. 12. 2021, 17:15:36 »
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

A jaký to je problém, když to commitne? Když se to API mění jednou za uherský rok nebo vůbec, nevidím v tom žádný problém.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #102 kdy: 01. 12. 2021, 19:48:29 »
generovany kod je zlo.
Silná slova. Pokud své tvrzení něčím nepodložíš, tak platí, že "generuj co můžeš".
Je třeba to brát pragmaticky. Když to jde jinak, je lepší negenerovat. Ovšem často není jiné cesty, třeba gRPC nebo různé ORM v C++/Go, pokud mají být použitelné, jinak nejdou.

Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #103 kdy: 01. 12. 2021, 20:00:43 »
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

A jaký to je problém, když to commitne? Když se to API mění jednou za uherský rok nebo vůbec, nevidím v tom žádný problém.

To co se muze zmenit se zmeni... kdyz se to deje zridka tak to znamena ze na to nejsem zvyklej a o to vic me to muze zmast.
Za to co je v repositari citim odpovednost. Nechci citit zodpovednost za neco co vygeneroval stroj.
Kdyz delam code review tak se musim podivat jestli zmena ve schematu odpovida zmene v generovanem souboru...
Kdyz na tom dela vic lidi najednou tak se pak treba musi resit ze nekdo commitne zmenu schematu, ale uz ne zmeny v generovanem kodu... Nic se nerozbije, ale je to matouci...
Kdyz budes mit v aplikaci nejaky submodul ktery se meni zridka nebo vubec a nejaky jiny na nem zavisi... tak budes commitovat i binarku?

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Rust - std::ANY alebo lepší návrh?
« Odpověď #104 kdy: 01. 12. 2021, 22:13:36 »
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

A jaký to je problém, když to commitne? Když se to API mění jednou za uherský rok nebo vůbec, nevidím v tom žádný problém.

To co se muze zmenit se zmeni... kdyz se to deje zridka tak to znamena ze na to nejsem zvyklej a o to vic me to muze zmast.
Za to co je v repositari citim odpovednost. Nechci citit zodpovednost za neco co vygeneroval stroj.
Kdyz delam code review tak se musim podivat jestli zmena ve schematu odpovida zmene v generovanem souboru...
Kdyz na tom dela vic lidi najednou tak se pak treba musi resit ze nekdo commitne zmenu schematu, ale uz ne zmeny v generovanem kodu... Nic se nerozbije, ale je to matouci...
Kdyz budes mit v aplikaci nejaky submodul ktery se meni zridka nebo vubec a nejaky jiny na nem zavisi... tak budes commitovat i binarku?

Přesně takto se to používá:
1/ Generovaný kód, jehož znění nevyžaduje schválení člověkem = generuje se na CI serveru (nebo kdekoliv jinde) + necommituje se.
2/ Generovaný kód, který mi vygeneruje stroj, ale musí projít schválením člověkem = generuje se u vývojáře, a pak se commituje.

Má to tyto důsledky:
V prvním případě se jede na tvrdo optimalizace, stroj může cokoliv.
V druhém případě je očekáváno, že to co se vygeneruje musí být co nejvíce čitelné; nejlépe optimalizované pro diff. (A následně se to třeba celé ještě projede první variantou.)

TypoProvidery a podobně jsou jen první varianta. Jen už zakomponovaná do překladače. Jak už tu někdo zmínil. Ve skutečnosti je to ale spousta dalších případů: gcc, javac, scalac, ... etc, kde by tě ani nepadlo uvažovat, že je to jen prachsprostej generátor kódu. A ne, není to něco jiného :)