Introduction To The Actor Paradigm In Golang

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ • 62

  • @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

  • @anshkumargarhewal8582
    @anshkumargarhewal8582 Рік тому +4

    Kudos for 10k Anthony 🎉

  • @razvan2693
    @razvan2693 Рік тому +4

    You are doing a great job Anthony ! Thank you for your time and availability of sharing this information !

  • @eswarnichtsmehrfrei
    @eswarnichtsmehrfrei Рік тому +3

    you are best actor

  • @farzadmf
    @farzadmf Рік тому +10

    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

  • @simonced
    @simonced Рік тому +3

    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 10 місяців тому +1

      also type zz for centering the line in the screen

    • @manfrombritain6816
      @manfrombritain6816 10 місяців тому

      @@peterszarvas94 every time i learn a new trick in vim i get a little burst of joy

    • @rauldragu9447
      @rauldragu9447 3 місяці тому

      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

  • @iamFlakey
    @iamFlakey Рік тому +1

    Anthony you’re a homie

  • @wonbyte
    @wonbyte 11 місяців тому

    This man is a beast

  • @yafpv
    @yafpv Рік тому +5

    What's difference between using framework and using native channels?

  • @AxioMATlC
    @AxioMATlC 3 місяці тому

    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

  • @harriscalvin8809
    @harriscalvin8809 Рік тому +1

    非常棒的视频,我很喜欢这种教学风格!

  • @pryamcem
    @pryamcem Рік тому +5

    finaly, VIM!!!

    • @anthonygg_
      @anthonygg_  Рік тому +1

      Sorry I let you down. Im back.

    • @chinmaykhare7246
      @chinmaykhare7246 Рік тому +1

      If possible can you publish your Vim setup video or if a doc which we can follow?

  • @skinniepuppie
    @skinniepuppie Рік тому +6

    15:28 Instead of adding newlines at the end of the file to center things in VIM. Just hit “z” twice.

    • @anthonygg_
      @anthonygg_  Рік тому +6

      Oof, thanks my man! Life saving info. ❤️

  • @lawrencekatuva8735
    @lawrencekatuva8735 Рік тому +2

    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_  Рік тому

      You have the PID when spawning one. Use that PID.

  • @dranon0o
    @dranon0o Рік тому +3

    So basically, we're doing a an IPC (spawning a process and communicate) + a reducer based on type :p
    Pretty nice

  • @vanyaio5479
    @vanyaio5479 Рік тому +1

    Thanks for the video! What plugins do you use for autocomplete and errors colored?

  • @nagabhushanbaddi2528
    @nagabhushanbaddi2528 10 місяців тому

    So, is it a PUB-SUB system like redis or kafka?

  • @chudchadanstud
    @chudchadanstud 5 місяців тому +1

    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.

  • @omgItsGreg
    @omgItsGreg Рік тому +1

    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_  Рік тому +1

      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

  • @rmkohlman
    @rmkohlman 9 місяців тому

    Awesome

  • @definitelynotrohan
    @definitelynotrohan Рік тому +3

    yay vim diesel

    • @anthonygg_
      @anthonygg_  Рік тому +1

      LMAO! This is it. That quote is mine now. Thanks buddy

  • @thefrazz
    @thefrazz 11 місяців тому

    helloworld example with send worked - trying the code-along version again.

  • @mti2fw
    @mti2fw Рік тому +1

    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

  • @SagarHingalAI
    @SagarHingalAI 9 днів тому

    what is the difference between using (traditional locks , channels) and this actor? from my perspective its only handling race conditions, please correct my understanding here

  • @tgaming2518
    @tgaming2518 Рік тому +1

    Thankx for your videos, they are amazig! +1 sub from me

  • @atticus_foust
    @atticus_foust Рік тому +2

    You should make a 2d game with this use case! If you have time**

  • @Flascoo
    @Flascoo Рік тому +1

    dope

  • @nafakirabratmu
    @nafakirabratmu Рік тому +1

    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 10 місяців тому

      it is still faster though, right? go is blazingly fast itself, i dont see that as a lie

  • @stardriver8660
    @stardriver8660 Рік тому +1

    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

  • @bertrodgers2420
    @bertrodgers2420 Рік тому +1

    what colour scheme is that please?

    • @anthonygg_
      @anthonygg_  Рік тому

      Gruvbox

    • @bertrodgers2420
      @bertrodgers2420 Рік тому +1

      @@anthonygg_ sorry to ask again, but do you have a link to it, as the normal gruvbox looks a lot different :(

  • @yacob9361
    @yacob9361 Рік тому +1

    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

  • @thefrazz
    @thefrazz 11 місяців тому

    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.

  • @mzerone-g6m
    @mzerone-g6m Рік тому

    The next episode make go work on beam 😂

  • @fabricioaraujo7642
    @fabricioaraujo7642 Рік тому +2

    Golang basically is a python who scales better 😅😊

  • @larrasket
    @larrasket Рік тому +2

    Now try Emacs

  • @jonnyenglish1041
    @jonnyenglish1041 Рік тому

    anthony I would be tempted to sign up to fulltimegodev is it were a reasonable monthly fee.

  • @mzerone-g6m
    @mzerone-g6m Рік тому +1

    Elixir - erlang