Igazad volt, amikor ekézted a node.js callback hell-t és pszeudo aszinkron hívásokról beszéltél.
Gratula, hogy nem adtad fel és találtál olyan dolgot amit kerestél (már ha nem értem félre a dolgot teljesen).
Épp csak belehallgattam egy előadásba a golang-on, de ez valami olyasmi ha jól értem. Nyelvileg jelölve vannak az aszinkron / konkurens dolgok, de akkor is érthetőbbnek tűnik.
Bár a golangos példákból nekem elsőre nem volt teljesen egyértelmű, hogyan lehet megoldani azt Go-ban, amivel anno Poetro jött fel, hogy elindít párhuzamosan több kérést különböző kiszolgálókhoz, aztán amikor mind megjött, összefésüli őket és küldi ki a kliensnek, de már megtaláltam nemrég, hogyan lehet szinkronizálni.
Így a kód átlátható, szekvenciális marad, ami jól jön a megértéshez, és tényleg én döntöm el, mi fusson párhuzamosan.
Ez almát a körtével. Architekturálisan teljesen más megközelítés a kettő. A go nem garantálja, hogy race condition mentes a kódod, a párhuzamossággal járó tipikus problémákkal neked kell foglalkoznod. Ha jól sejtem a WaitGroupot találtad meg, ami ugyanaz, mint pl a Javaban a CountDownLatch. Ez a megoldás azt eredményezi, hogy a hívó szálon blockolni fogsz, amíg a párhuzamos futások végetérnek a többi szálon. Ez egy tökjó dolog, de alapjaiban más, mint a node megoldása (pl lehet rengeteg blockoló szálad).
Elismerem, igazad volt
Gratula, hogy nem adtad fel és találtál olyan dolgot amit kerestél (már ha nem értem félre a dolgot teljesen).
Épp csak belehallgattam egy előadásba a golang-on, de ez valami olyasmi ha jól értem. Nyelvileg jelölve vannak az aszinkron / konkurens dolgok, de akkor is érthetőbbnek tűnik.
A deploy része meg külön tetszik.
Riszpekt:-)
Köszönöm
Így a kód átlátható, szekvenciális marad, ami jól jön a megértéshez, és tényleg én döntöm el, mi fusson párhuzamosan.
Ez almát a körtével.
Én a golang nyitóoldalán lévő
egy függvény visszaad egy csatornát, ezt ha később használod valahol, addig blokkol, míg nem érkezik válasz. Van még egy csomó példa, de meggyőző.
Értem én, hogy blokkolhat a szál, de pont nem érdekel, ha van lehetőségem választani, nekem életszerűbbnek tűnik ez, mint a node.