946
/dev/null / Re:Těžké OOP problémy
« kdy: 09. 11. 2019, 09:53:23 »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ů?
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.
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ů?
mohl bys ukázat příklad v tom jiném jazyku, kde je podle tebe await nebezpečné ve vícevláknovém prostředí?To je přece triviální: jakýkoliv kód, který by byl chybný i bez async.
Bavili jsme se o await v JS.Možná vy, já jsem mluvil obecně.
V té větě, na kterou reaguješ, ale "JS" vůbec není.Používat a dobře rozumět jsou dvě odlišné věci. Zkus se třeba náhodně vybraného webaře zeptat, jak souvisí await s promisy a uvidíš, jak se v tom začne zamotávat...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í
No, vzhledem k tomu, že JS (webový i NodeJS) je single-thread, tak ta otázka poněkud nedává smysl ;-)
Rozdelenie podla jazykov sa mi paci, ale kde mate commitnuty compose-file, ak teda ho tam vobec mate? Motivacia mat to v jednom repo bola ta, ze mas v roote compose-file, a jednym prikazom si nahodis cely stack, okrem veci ktoru zrovna vyvijas.Na vsechny veci souvisejici s ops mame dalsi repo (je to podstatne slozitejsi nez jeden compose file).
Jo, ten Pike není blbec.Ani Thompson. Toho tretiho neznam.
To ale nic nedokazuje - není to reprezenattivní skupina.Však já jsem netvrdil, že to něco dokazuje. Řekl jsem jasně "kdyby si někdo dal práci...".
Začátečníci se budou přirozeně ptát víc a na triviálnější otázky, protože neznají ekosystém a tápou i v tom, odkud brát informace. Pokročilejší si častěji poradí sám a ptá se, až když je nutno.Senioři zase obvykle neřeší triviality, takže by se se stejnou logikou měli ptát na těžší problémy. A pokud by poměr seniorů a juniorů byl vyvážený, neměly by pak ty triviální otázky drtivě převládat.
(EDIT: docela totiž věřím tomu, že tohle si ten Pike a spol. zjistili docela dobře
)
ti co to používají tomu rozumí minimálně stejně jako vy dva s Idrisem. Řekl bych, že lépe. Souvislost s Promisy je zřejmá, každému, kdo to viděl v praxi nebo si přečetl prvních pár řádků dokumentace. Vy dva Javascript znáte jen na úrovni pseudo-intelektuálního humoru o chování operátoru ==.Abysme si rozuměli:
Používat a dobře rozumět jsou dvě odlišné věci. Zkus se třeba náhodně vybraného webaře zeptat, jak souvisí await s promisy a uvidíš, jak se v tom začne zamotávat...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í
neměl bych strach, většina webových vývojářů už to dávno používá, nemá s tím problém. Když v tom nehledáte teorii kategorií nebo co, tak je dokumentace docela stručná a srozumitelná.Používat a dobře rozumět jsou dvě odlišné věci. Zkus se třeba náhodně vybraného webaře zeptat, jak souvisí await s promisy a uvidíš, jak se v tom začne zamotávat
Typový systém naopak “udržuje kód v mantinelech,” problém ovšem je, že kvalitativní hierarchie je vlastní typy -> generické typy -> higher kinded typy -> závislostní typy a 99% vývoje končí na generických. Až se rozšíří ty zbylé dvě kategorie, bude vznikat kvalitnější SW rychleji a spolehlivěji.To máš sice pravdu, ale je tam ještě jedna potíž: pokud je těch "abstrahujících" konceptů v jazyce víc, začnou mít netriviální interakce a celková kognitivní zátěž může narůst nad úroveň pro BFP únosnou.
(Velice smutné je, že teď si jde drtivá většina čtenářů googlit, co to je higher kinded a závislostní typ.)
Každý má limit chápání (abstrakcí i obecný) jinde. Monoid v kategorii endofunktorů je ultraužitečná abstrakce, ale kolik wannabe vývojářů ví, která bije? Přesně o tomto je myslím Go, které kašle na fancy abstrakce, Pike ho navrhnul - dle vlastních slov - pro absolventy bez zkušeností.Jo, to je přesný. A není ani potřeba chodit tak daleko. Onehdá jsme se tady přece bavili o async/await a shodli se na tom, že máme pochybnosti o tom, kolik procent vývojářů bude dobře vědět, co se tam pod kapotou vlastně děje... Celkem podstatný tady je, jestli je možné abstrakci "bezpečně" používat i bez jají důkladné znalosti, na základě nějaké jednoduché poučky typu "když je někde uvnitř použité await, celá funkce musí být async".
Dobře zvolená abstrakce naopak nevyžaduje, abys někam skákal, prostě o sobě říká, co dělá a typicky se o vnitřek zajímat vůbec nemusíš.Nemusím se o vnitřek starat, pokud jsem si dostatečně jistý tím, 1. co je výsledkem její činnosti (pokud je to funkce) 2. že neobsahuje žádnou chybu.
dobře zvolená a napsaná abstrakce kód nemůže znepřehlednit.S tím bych nesouhlasil. Dokonce bych spíš tvrdil skoro opak: každá abstrakce z definice přidává další indirekci v tom smyslu, že když sleduju flow programu a narazím na abstrakci, musím odskočit jinam (do souboru, kde je ta abstrakce definovaná).
kdo zná jen a pouze IT, vnáší umělou složitost do kóduNevím, jestli bych to takhle spojoval. Např. my máme ve firmě šéfprogramátora, který jednoduchost a přímočarost docela tvrdě vyžaduje. Zrovna tenhle týden mi říkal, že za rule of thumb kritérium obhajitelnosti abstrakce považuje to, že je ta abstrakce použitá na třech různých místech. Psát abstrakce jenom tak z plezíru, s vidinou, že se to jednou bude hodit, je u něj no-go. A je to čistý informatik. Akorát má prostě dost zkušeností a je dost inteligentní.
Chtěl jsem najít kdo a odkud měl přednášku na pardubice.devfest.cz na Rust, ale jsi to tyTak ještě Pavel Tišnovský, takže možná v RedHatu něco minimálně zvažují?