ugrás a tartalomhoz

Moving from Node.js to Go at Bowery

Hidvégi Gábor · 2015. Már. 5. (Cs), 12.31
A Go számos előnnyel büszkélkedhet
 
1

Elismerem, igazad volt

szabo.b.gabor · 2015. Már. 12. (Cs), 06.08
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.

A deploy része meg külön tetszik.

Riszpekt:-)
2

Köszönöm

Hidvégi Gábor · 2015. Már. 12. (Cs), 08.40
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.
3

Ez almát a körtével.

BlaZe · 2015. Már. 12. (Cs), 21.06
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).
4

Én a golang nyitóoldalán lévő

szabo.b.gabor · 2015. Már. 13. (P), 00.16
Én a golang nyitóoldalán lévő videóba néztem bele, a boring example-ös példákba.

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.