Release Party | Ways To Do Things with Peter Bourgon

  Рет қаралды 23,528

The Go Programming Language

The Go Programming Language

Күн бұрын

Пікірлер: 26
@rsjrx
@rsjrx 3 жыл бұрын
I became a fan of Peter after viewing another presentation he gave, where he was chased off stage when he was owed TWO MINUTES. Life is unfair. Peter has many great qualities though the ones I like the most are his immaculate hair, pragmatism and authenticity. Good talk.
@jamiebertram9744
@jamiebertram9744 4 жыл бұрын
"give more control to the caller" This is one of my favorite software idioms.
@jub0bs
@jub0bs 3 жыл бұрын
KZbin, how can I upvote this video twice? Behind a painfully generic title hides a great talk!
@ddevienne
@ddevienne 7 жыл бұрын
Very elegant. Thanks Peter. My only concern is on the Group name which I find too generic. Does not convey the essence of what you came up with here IMHO. Here are a few alternate suggestions: ActorGroup.Add[Actor], Team.Add[Player], Orchestra.Add (with .Conduct() instead of .Go()), or finally Ensemble.Orchestrate(play, stop).
@VickyGYT
@VickyGYT 3 жыл бұрын
Concise, precise amd to the point. I like such well thought sessions.
@bminerrolltide
@bminerrolltide 2 жыл бұрын
Great talk. If you don't care about the first error that orchestrated the shutdown of your app, you can just make `net.Listener` context-aware. For example, one can start a goroutine in an anonymous func that reads from `ctx.Done()` and then calls `listener.Close()`
@LuisRuizHalo
@LuisRuizHalo 4 жыл бұрын
Thank you, Skinny Pete.
@ramih6280
@ramih6280 5 жыл бұрын
Brilliant as always
@rodrigolessa8288
@rodrigolessa8288 6 жыл бұрын
What is the benefit of sending the processing to a separate go routine? The select statement still blocks so it doesn't seem that it makes the request any faster.
@dir01org
@dir01org 4 жыл бұрын
My initial thoughts exactly. But then I realised that this is a synchronisation pattern: rather than messing around with mutexes and stuff, we perform all of the operations in a designated goroutine in a sequential manner, so each operation has an exclusive undivided access to data
@sneakdotberlin7085
@sneakdotberlin7085 4 жыл бұрын
I would like to put these snippets into a text repository I keep for ideas and inspiration and design patterns. Are these talk slides online somewhere or must I type them in from the stills onscreen?
@glxxyz
@glxxyz 3 жыл бұрын
The url at 22:45 wasn't quite right but it can be found here: github.com/oklog/run
@kexuyo
@kexuyo 6 жыл бұрын
19:43 I wonder how to do error handling for all the goroutines here. It already needs so many chans just to cancel, so how to add error handling without adding too much mess?
@tauraamui
@tauraamui 3 жыл бұрын
@24:16 in to the video, your actor launcher should have a channel wait receive within those anon go func calls which execute the actor, and after the loop the wait channel should be closed. Otherwise all of the actors will actually get launched one after the other, not at exactly the same time like that comment block was claiming.
@aarondavidcooper
@aarondavidcooper 3 жыл бұрын
concurrency is not parallelism
@tauraamui
@tauraamui 3 жыл бұрын
@@aarondavidcooper It's only ever parallel if it's running across multiple physical cores, otherwise it's concurrent/one after the other very quickly. That single line quote from the Go authors doesn't really address any points in my comment though, what's your point?
@aarondavidcooper
@aarondavidcooper 3 жыл бұрын
@@tauraamui The timestamp you provided states "Run all actors (functions) concurrently" which it does, so I replied as it looked like you may have confused concurrency with parallelism based on your suggestion. Sorry you didn't find it helpful, all the best.
@tauraamui
@tauraamui 3 жыл бұрын
@@aarondavidcooper Oh ok, so my point was just that the workers won't all start effectively at the same time, whether or not it's concurrent or parallel isn't part of the point I was trying to make. So if you want multiple routines to begin at the same time, you call them with the go invoke one after the other (because that's the only practical way to do that), but within the routines you immediately block them all by reading on an empty channel, but once they've all been Go invoked you then close that channel. When I said they don't all start at the same time, I wasn't referring to transparent difference between concurrent or literally the same time of parallism
@maybepeterbourgon
@maybepeterbourgon 3 жыл бұрын
Thanks for the comment. Even with a synchronization "fence" as you suggest, there's actually no guarantee the goroutines will start at the same time -- the scheduler is inherently nondeterministic in this regard! So I think there's really no practical difference between the current implementation and your suggestion.
@amanpshigh
@amanpshigh 6 жыл бұрын
Useful talk
@wraytm
@wraytm 6 жыл бұрын
Genious.
@clever_taussig
@clever_taussig 5 жыл бұрын
Very useful!
@mhcbon4606
@mhcbon4606 7 жыл бұрын
+1 for Group, first 10 minutes are bit boring, overall very good talk
Twelve Go Best Practices - Francesc Campoy
49:27
Esri R&D Center
Рет қаралды 70 М.
小路飞还不知道他把路飞给擦没有了 #路飞#海贼王
00:32
路飞与唐舞桐
Рет қаралды 85 МЛН
Happy birthday to you by Secret Vlog
00:12
Secret Vlog
Рет қаралды 6 МЛН
МЕНЯ УКУСИЛ ПАУК #shorts
00:23
Паша Осадчий
Рет қаралды 4,8 МЛН
Function Iterators might just change the way we write loops in Go
11:35
How I build APIs capable of gigantic scale in Go - Mat Ryer
41:19
SF Docker + Go Meetup | Banking on Go with Matt Heath
28:09
The Go Programming Language
Рет қаралды 7 М.
Master Go Programming With These Concurrency Patterns (in 40 minutes)
46:15
Golang UK Conference 2016 - Dave Cheney - SOLID Go Design
27:30
GopherCon UK
Рет қаралды 109 М.
Gopherfest 2015 | Go Proverbs with Rob Pike
22:29
The Go Programming Language
Рет қаралды 256 М.
Go Tooling  in Action
41:51
justforfunc: Programming in Go
Рет қаралды 116 М.
小路飞还不知道他把路飞给擦没有了 #路飞#海贼王
00:32
路飞与唐舞桐
Рет қаралды 85 МЛН