Introduction To The Actor Paradigm In Golang

  Рет қаралды 13,042

Anthony GG

Anthony GG

Күн бұрын

► Join my Discord community for free education 👉 / discord
► Pre order (get 30% off) my exclusive Golang course 👉 fulltimegodev.com
► Become a Patreon for exclusive tutorials👉 / anthonygg_
► Follow me on Twitter 👉 / anthdm
► Follow me on GitHub 👉 github.com/anthdm
In this Golang tutorial, I will teach you the basic fundamentals of the Actor model in Golang.

Пікірлер: 61
@anthonygg_
@anthonygg_ Жыл бұрын
► Join my Discord community for free education 👉 discord.com/invite/bDy8t4b3Rz ► Pre order (get 30% off) my Golang course 👉 fulltimegodev.com ► Become a Patreon for exclusive tutorials 👉 www.patreon.com/anthonygg_ Thanks for watching
@razvan2693
@razvan2693 Жыл бұрын
You are doing a great job Anthony ! Thank you for your time and availability of sharing this information !
@anshkumargarhewal8582
@anshkumargarhewal8582 Жыл бұрын
Kudos for 10k Anthony 🎉
@AxioMATlC
@AxioMATlC 2 ай бұрын
I really wish you take on more TDD design so I know how to test it. I love to start with testing because tests are needed no matter what, and they are harder to write if you never had tests in mind and realize a lot of refactoring has to happen to just make it testable
@farzadmf
@farzadmf Жыл бұрын
Althought you've done a great job for the framework, I was hoping to see the underlying concepts that the framework is based on ("the actor paradigm" and what it is) Thank you for the video anyway
@anthonygg_
@anthonygg_ Жыл бұрын
Will go more technical
@harriscalvin8809
@harriscalvin8809 Жыл бұрын
非常棒的视频,我很喜欢这种教学风格!
@eswarnichtsmehrfrei
@eswarnichtsmehrfrei Жыл бұрын
you are best actor
@simonced
@simonced Жыл бұрын
in vim, you can keep some lines space at top and bottom by setting the option "scroll offset" to a value like 5. example: ":set scrolloff=5"
@peterszarvas94
@peterszarvas94 9 ай бұрын
also type zz for centering the line in the screen
@manfrombritain6816
@manfrombritain6816 9 ай бұрын
@@peterszarvas94 every time i learn a new trick in vim i get a little burst of joy
@rauldragu9447
@rauldragu9447 2 ай бұрын
In my neovim v0.10, scrolloff doesn't seem to work anymore for this purpose. But you can also use ctrl+e/ctrl+y to scroll line by line. You can also use zz to center vertically the line the cursor is on, zb to move the line the cursor is on to the [b]ottom of the screen, and zt for the [t]op. The z* command also respect scrolloff
@wonbyte
@wonbyte 10 ай бұрын
This man is a beast
@iamFlakey
@iamFlakey Жыл бұрын
Anthony you’re a homie
@pryamcem
@pryamcem Жыл бұрын
finaly, VIM!!!
@anthonygg_
@anthonygg_ Жыл бұрын
Sorry I let you down. Im back.
@chinmaykhare7246
@chinmaykhare7246 Жыл бұрын
If possible can you publish your Vim setup video or if a doc which we can follow?
@lawrencekatuva8735
@lawrencekatuva8735 11 ай бұрын
Am working on a payment gateway and am consdering golang only if I'll get a good actor model implementation. How can I tie any actor to reference which I can use to access it later in a diffrent context.
@anthonygg_
@anthonygg_ 11 ай бұрын
You have the PID when spawning one. Use that PID.
@yafpv
@yafpv Жыл бұрын
What's difference between using framework and using native channels?
@skinniepuppie
@skinniepuppie Жыл бұрын
15:28 Instead of adding newlines at the end of the file to center things in VIM. Just hit “z” twice.
@anthonygg_
@anthonygg_ Жыл бұрын
Oof, thanks my man! Life saving info. ❤️
@atticus_foust
@atticus_foust Жыл бұрын
You should make a 2d game with this use case! If you have time**
@tgaming2518
@tgaming2518 Жыл бұрын
Thankx for your videos, they are amazig! +1 sub from me
@rmkohlman
@rmkohlman 8 ай бұрын
Awesome
@chudchadanstud
@chudchadanstud 5 ай бұрын
instead of using switch cases why not take advantage of state pattern and turn all those cases into objects? You can just send an object with a run method and when it's dequeued from the inbox we call the run method?
@anthonygg_
@anthonygg_ 5 ай бұрын
Well, hows that going to work over the wire?
@anthonygg_
@anthonygg_ 5 ай бұрын
Locally that would work great
@chudchadanstud
@chudchadanstud 5 ай бұрын
@@anthonygg_ In C/C++ you would use ABIs (Application Binary Interfaces). Not sure about Go, doesn't't Go have compiled binaries designed to interop? Your destination could simply have this binary as some form of contract. Another method is to have a TCP actor do all that. But you make a good point either way. Sometimes a simple solution is best.
@vanyaio5479
@vanyaio5479 Жыл бұрын
Thanks for the video! What plugins do you use for autocomplete and errors colored?
@anthonygg_
@anthonygg_ Жыл бұрын
lsp-zero
@dranon0o
@dranon0o Жыл бұрын
So basically, we're doing a an IPC (spawning a process and communicate) + a reducer based on type :p Pretty nice
@thefrazz
@thefrazz 10 ай бұрын
helloworld example with send worked - trying the code-along version again.
@mti2fw
@mti2fw Жыл бұрын
In terms of usage, this solution is a bit closer to an async queue system like rabbitmq, but the nice trick is that holywood just spawns a new process instead of communicating over the network, and on the other hand, there is no way to send to the consumer of another team, for example. Am I right? Thanks for the video
@anthonygg_
@anthonygg_ Жыл бұрын
You mean over the network?
@mti2fw
@mti2fw Жыл бұрын
@@anthonygg_ I mean communication is between golang and OS instead of AMQP or other network protocol
@nagabhushanbaddi2528
@nagabhushanbaddi2528 9 ай бұрын
So, is it a PUB-SUB system like redis or kafka?
@omgItsGreg
@omgItsGreg Жыл бұрын
Does it even make sense to call `e.Send` in a goroutine? Since it's only sending a message and not actually handling it, right?
@anthonygg_
@anthonygg_ Жыл бұрын
Correct doesnt make sense, but just want to show the safeness of it in case you find a usecase to actually do it in a goroutine
@Flascoo
@Flascoo Жыл бұрын
dope
@definitelynotrohan
@definitelynotrohan Жыл бұрын
yay vim diesel
@anthonygg_
@anthonygg_ Жыл бұрын
LMAO! This is it. That quote is mine now. Thanks buddy
@nafakirabratmu
@nafakirabratmu Жыл бұрын
It would be better if you showed the native implementation and not some wrapper around it. Although I really like this pattern, I found out that some less experienced developers find it confusing. Another point, instead of sending objects, you can pass down behavior (functions) following the "Don't communicate by sharing memory, share memory by communicating." proverb. Also, being a blazingly fast is an outright lie. It is 10x times faster comparing to just having a struct with a receiver that does use a mutex in order to ensure thread safety
@peterszarvas94
@peterszarvas94 9 ай бұрын
it is still faster though, right? go is blazingly fast itself, i dont see that as a lie
@stardriver8660
@stardriver8660 Жыл бұрын
i purchase the course but why there is no content
@anthonygg_
@anthonygg_ Жыл бұрын
The content is gradually coming over the month of april. By the end of april all will be available for your lifetime
@anthonygg_
@anthonygg_ Жыл бұрын
Join the discord I will add you to the course channel
@mzerone-g6m
@mzerone-g6m Жыл бұрын
The next episode make go work on beam 😂
@bertrodgers2420
@bertrodgers2420 Жыл бұрын
what colour scheme is that please?
@anthonygg_
@anthonygg_ Жыл бұрын
Gruvbox
@bertrodgers2420
@bertrodgers2420 Жыл бұрын
@@anthonygg_ sorry to ask again, but do you have a link to it, as the normal gruvbox looks a lot different :(
@thefrazz
@thefrazz 10 ай бұрын
At this point the SetState message is not working for me at all with exactly your code. Will erase the whole project and try again.
@jonnyenglish1041
@jonnyenglish1041 Жыл бұрын
anthony I would be tempted to sign up to fulltimegodev is it were a reasonable monthly fee.
@fabricioaraujo7642
@fabricioaraujo7642 Жыл бұрын
Golang basically is a python who scales better 😅😊
@anthonygg_
@anthonygg_ Жыл бұрын
Thats actually true.
@bilbobeutlin3405
@bilbobeutlin3405 Жыл бұрын
And has types!
@yacob9361
@yacob9361 Жыл бұрын
routines leak when testing the example tcpserver....
@anthonygg_
@anthonygg_ Жыл бұрын
Doesnt matter, its an example not a copy paste thing. Its an example to give you an idea. And if you want, make a pr and fix
@larrasket
@larrasket Жыл бұрын
Now try Emacs
@mzerone-g6m
@mzerone-g6m Жыл бұрын
Elixir - erlang
An Effective Way To Authorize Handlers In Golang
15:18
Anthony GG
Рет қаралды 15 М.
Actors or Not: Async Event Architectures
54:00
InfoQ
Рет қаралды 28 М.
World’s strongest WOMAN vs regular GIRLS
00:56
A4
Рет қаралды 17 МЛН
Triple kill😹
00:18
GG Animation
Рет қаралды 17 МЛН
Yay, My Dad Is a Vending Machine! 🛍️😆 #funny #prank #comedy
00:17
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 1,7 МЛН
Important Tips On How To Write Idiomatic Code In Golang
21:52
Anthony GG
Рет қаралды 23 М.
How To Use Goroutines For Aggregating Data In Golang?!
17:15
Anthony GG
Рет қаралды 41 М.
Go Pointers: When & How To Use Them Efficiently
14:09
Anthony GG
Рет қаралды 83 М.
This Will Make Everyone Understand Golang Interfaces
21:03
Anthony GG
Рет қаралды 54 М.
How To Use The Context Package In Golang?
17:03
Anthony GG
Рет қаралды 65 М.
On .NET Live - Exploring Actors with Proto.Actor
1:03:56
dotnet
Рет қаралды 4,6 М.
Golang UK Conference 2016 - Bryan Boreham - An Actor Model in Go
31:38
Keynote | Actors with Tokio - a lesson in ownership - Alice Ryhl
44:58
RustLab Conference
Рет қаралды 17 М.
World’s strongest WOMAN vs regular GIRLS
00:56
A4
Рет қаралды 17 МЛН