Zobrazit příspěvky

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.


Příspěvky - gill

Stran: 1 2 3 [4] 5 6 ... 18
46
/dev/null / Re:Těžké OOP problémy
« kdy: 10. 11. 2019, 17:10:02 »
async funkce obyčejná funkce vracející promise
Jistě, protože platí, že Promise[T] je podmnožina U.

Zjevně nechápeš pointu, nevadí, stane se.

rozumím asynchronnímu programování příliš dobře na to abych tom viděl pointu.

47
/dev/null / Re:Těžké OOP problémy
« kdy: 10. 11. 2019, 10:58:59 »
neplatil ani po úpravách, vytvoření promisu bez čekání na návratovou hodnotu je naprosto validní kód.
Ještě jednou a naposledy:

Pokud chci ze sync funkce dostat návratovou hodnotu, nesmím ji awaitovat. Pokud chci z async funkce dostat návratovou hodnotu, musím ji awaitovat.

Že spuštění async funkce bez await je možné a vrací Promise, je naprosto irelevantní. Že vrácený Promise můžu probublat přes libovolný počet proměnných nebo funkcí, je irelevantní.

Jak říkal Idris výš: sync funkce je typu
Kód: [Vybrat]
T -> U
async funkce je typu
Kód: [Vybrat]
T -> Promise[U]
Jsou to dva různé světy, jeden červený, druhý modrý. Jestli to nechápeš, nebo nechceš chápat, je celkem jedno. Tak jako tak diskuse s tebou nemá smysl.

návratovou hodnotu dostáváš z promisu, ne z funkce. async funkce obyčejná funkce vracející promise. Je to naprosto blbuvzdorné.

48
/dev/null / Re:Těžké OOP problémy
« kdy: 10. 11. 2019, 10:34:27 »
Nechcete se víc vnímat?
V čem vidíš problém? Ten článek má ty definice udělané tak, aby seděly na nějakou implementaci. Implementace v JS je mírně odlišná, takže pokud chci, aby ty definice seděly na JS, musím je mírně upravit. Po takových drobných technicistních úpravách by článek platil i pro JS. Protože platí pro libovolnou implementaci async/await.

...a nechci být zlý, ale kdyby gill nechtěl jenom rejpat, ale snažil by se pointu článku pochopit, došlo by mu to samo.

neplatil ani po úpravách, vytvoření promisu bez čekání na návratovou hodnotu je naprosto validní kód. Narozdíl od pythonu, kde nespuštění vytvořené coroutiny vygeneruje warning. Promise v JS se spustí (naplánuje) automaticky při vytvoření.

49
/dev/null / Re:Těžké OOP problémy
« kdy: 10. 11. 2019, 08:47:10 »
to není pravda. Oba způsoby volání "červených funkcí" se používají, jak jsem ukázal výše.
To je definice. Definice nemuze byt nepravdiva.

potom javascriptové async funkce nesplňují definici červených funkcí z toho článku.

50
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 22:24:43 »
2. Kritizuju ten koncept jako takovy, zadna implementace na tom nemuze nic zmenit. To, ze "funguje dobre" snad znamena, ze A) kod neni rozpolcen na "modrou" a "cervenou" cast? B) Ze async se viralne nesiri kodem a ze starsiho kodu se neda pouzit? Ne, neznamena, ze. Protoze to je fundamentalni vlastnost toho konceptu. S JS, Pythonem ani jakymkoli jinym jazykem to nesouvisi.

Kdybys byval byl cetl, co pisu, a reagoval na to, co jsem napsal a ne na to, co jsem nenapsal, melo by ti to byt jasny, protoze jsem to zopakoval nekolikrat, zcela explicitne.

myslíš modré a červené tak jak jsou popsané v článku http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/ ? On kritizuje speciálně C#, který neznám, ale podle mě dost těch výtek v JS neplatí.
Citace
When calling a function, you need to use the call that corresponds to its color. If you get it wrong—call a red function with •blue after the parentheses or vice versa—it does something bad.
to není pravda. Oba způsoby volání "červených funkcí" se používají, jak jsem ukázal výše.

51
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 21:39:09 »
3. Jenom tak z pleziru, vis, co mam ted na druhym monitoru?

Kód: [Vybrat]
@pytest.mark.asyncio
async def test_multiple_gateways(service_config, multiple_gateways_sim,
                                 eso5_test1_mqtt, eos6_os_test1_mqtt,
                                 etm3_test1_mqtt):
     [...]

ten dekorátor říká, že pytest má tu async funkci spustit v asyncio event loopu. To je problém specifický pro python, kde neexistuje jednotný event loop. V jascriptových test frameworcích nic takového specifikovat nemusíš. V pytestu to můžeš spouštět ručně uvnitř obyčejných test casů, nemusíš používat async funkce.

52
Vývoj / Re:JS async / await
« kdy: 09. 11. 2019, 19:03:31 »
asi  e.message

53
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 18:57:59 »
když něco kritizuje, měl by to znát.
Mam pocit, ze si zase v necem nerozumime. Co presne mas pocit, ze kritizuju, a proc bych podle tebe mel znat implementacni detaily await v JS? S cim z toho, co jsem kde napsal, to ma souvislost? (Myslim ty otazky vazne, nejsou to zadne chytaky, fakt nerozumim tomu, kam miris)

už několikátá diskuze, ve které kritizuješ async/await. Zkus to nějaký čas používat a až potom hodnotit. Zrovna v Javascriptu to podle mě funguje docela dobře.

54
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 18:24:51 »
Chápu. Když bych tě požádal, aby si se další diskuse už neúčastnil, to by nešlo, že?

dokud budete šířit bludy, budu se vyjadřovat. Požádej admina, jestli ti tu tolik vadím.

55
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 18:12:33 »
mohl bys to zvládnout.

Ta agresivita, to má nějaký hlubší smysl?

když něco kritizuje, měl by to znát.

56
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 18:00:55 »
To první je asi jasný. To druhý je jenom "jakože paralelní" v JS stylu. Od serializovaných awaitů by se to poznalo tak, že
Kód: [Vybrat]
await sleep(1)
await sleep(1)
await sleep(1)
by netrvalo ~ tři sekundy, ale ~ jednu.

To druhé v JS jde implementovat, ale musí se to (AFAIK) udělat ručně přes Promise.all()

O to právě jde, await čeká na splnění promisu. Když použiji analogii s vlákny, await odpovídá join.

To druhé v JS jde implementovat, ale musí se to (AFAIK) udělat ručně přes Promise.all()
nemusí, můžeš nejdřív vytvořit všechny tři promisy a až potom awaitovat (odpovídá joinování vláken).
Kód: [Vybrat]
let p1 = sleep(1)
let p2 = sleep(1)
let p3 = sleep(1)
await p1;
await p2;
await p3;

Promise.all dělá přibližně to stejné.

přečti dokumentaci k await, je hodně krátká, mohl bys to vládnout.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

57
/dev/null / Re:Linux na upadku?
« kdy: 09. 11. 2019, 13:10:29 »
Kdybyste je ignorovali, tak je to přestane bavit. Kdyby se "Code of Conduct" nediskutovalo mimo komunitu, tak ho nikdo nebude prosazovat. Jim jde o publicitu a nasírání slabých jedinců mimo komunitu.

58
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 10:21:38 »
Await v JS akceptuje thenable objekty, narozdíl od await v Pythonu neakceptuje generátory.
To je implementační detail bez jakéhokoliv dopadu na cokoliv, co jsem napsal.

o async/await jsi zatím nic nenapsal, jen otázku

...anebo pokud bys měl o něm vysoké mínění, můžeš se ho zkusit zeptat, za jakých podmínek je podle něj bezpečné používat await v multivláknovém prostředí :)
na kterou jsi odpověděl
To je přece triviální: jakýkoliv kód, který by byl chybný i bez async.

59
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 10:02:41 »
stejné klíčové slovo má v různých jazycích různý význam.
Můžeš uvést příklad takových dvou jazyků?

Await v JS akceptuje thenable objekty, narozdíl od await v Pythonu neakceptuje generátory. Generátory a async funkce spolu v JS narozdíl od Pythonu nijak nesouvisí.

60
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 09:52:27 »
Bavili jsme se o await v JS.
Možná vy, já jsem mluvil obecně.

stejné klíčové slovo má v různých jazycích různý význam.

Stran: 1 2 3 [4] 5 6 ... 18