Structure Your Golang Service With Layers Like This

Sdílet
Vložit
  • čas přidán 26. 08. 2024
  • ► Join my Discord community for free education 👉 / discord
    ► Exclusive Lessons, Mentorship, And Videos 👉 / anthonygg_
    ► 33% OFF on my Go + HTMX + Templ Course PRESALE 👉bit.ly/3UFruxO
    ► Enjoy a 60% Black Friday Discount on My Golang Course 👉 fulltimegodev.com
    ► Learn how I became a self-taught software engineer 👉fulltimegodev....
    ► Follow me on Twitter 👉 / anthdm
    ► Follow me on GitHub 👉 github.com/anthdm
    Grab yourself a 33% OFF on the PRESALE event of my building production ready applications with GO + HTMX + Templ + Tailwindcss + JQuery course here: bit.ly/3UFruxO
    SUBSCRIBE OR NO MARGARITAS
    ╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
    ║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
    ╠╗║╚╝║║╠╗║╚╣║║║║║═╣
    ╚═╩══╩═╩═╩═╩╝╚╩═╩═╝

Komentáře • 19

  • @anthonygg_
    @anthonygg_  Před 5 měsíci +1

    ► 33% OFF on my Go + HTMX + Templ Course PRESALE 👉bit.ly/3UFruxO
    ► Join my Discord community for free education 👉 discord.com/invite/Ac7CWREe58
    ► Exclusive Lessons, Mentorship, And Videos 👉 www.patreon.com/anthonygg_
    ► 60% OFF on my Golang course 👉 fulltimegodev.com
    Thanks for watching

    • @michawiacek1585
      @michawiacek1585 Před 5 měsíci

      Hi! Have you thought about uploading your courses to the Udemy platform?

  • @jorgezozaya5049
    @jorgezozaya5049 Před 5 měsíci +11

    The beauty of channels like this lies in their ability to inspire me as an independent programmer to consistently embrace challenges that stretch beyond my comfort zone. Without access to this incredible wealth of knowledge, navigating such challenges would feel maybe unattainable.

  • @coffeeintocode
    @coffeeintocode Před 5 měsíci +2

    Yeah I really like this approach. It makes testing so much easier as well!

  • @marcs8325
    @marcs8325 Před 3 měsíci

    I see the web API as a complete application and I actually call your transportation layer simply the presentation layer of the api (3 layers... presentation layer, business/domain layer, data layer).
    But we achieve the same thing... business layer is separate from the framework we're using.
    I haven't done much Go yet, but I do this in C# all the time. Mainly because Microsoft likes to change frameworks a lot and I like to keep my business code as stable as possible. It should not depend on stuff that might change often.
    Learning Go because I want something simple 😂 I'm getting tired of all the different Microsoft technologies.

  • @esarijal
    @esarijal Před 5 měsíci +6

    I want to ask you how to test handler that attached to services? since it is struct, do I have to change it to interface so I can mock them?

    • @valeriikundas1913
      @valeriikundas1913 Před 5 měsíci

      Yes, read up on dependency inversion and testing

    • @anthonygg_
      @anthonygg_  Před 5 měsíci +6

      Better to test the business logic. As the handler is more of the integration part imo

    • @esarijal
      @esarijal Před 5 měsíci

      @@anthonygg_ omg this answer blown my mind. I got what you mean, you are correct man, thanks

  • @christopher8641
    @christopher8641 Před 5 měsíci +4

    Super important to note that this idea is by no means restricted to Go. I write a lot of Rust (btw) and this idea is basically just tower::Service and tower::Layer. The instrumentation is just a service that decorates another service (i.e. Layer). I will say that there is a certain "size" to a problem where these ideas shine. But, I would imagine you agree that this is not a "one size fits all" pattern. Good video

    • @anthonygg_
      @anthonygg_  Před 5 měsíci

      It reflects for all languages

    • @morpheus4564
      @morpheus4564 Před 3 měsíci

      I love the onion/ hexagonal Arch. what you think about it?

  • @vyrwu
    @vyrwu Před 5 měsíci +1

    Is this layering needed if there’s no requirement for multiple transports up front? I’ve used hex arch for a few projects to learn it, and while I get the point, I also see that I’m producing more complex code, without a clear justification. It seems to me that it’s more like something that could be whipped out if needed, not strictly used as a general rule - but you say you „should” abstract things this way. Genuinely curious, not being edgy.

  • @amorto3420
    @amorto3420 Před 5 měsíci

    Love your vids Anthony. But the sound is very low on some of the videos I've watched, sometime it's a little bit difficult to hear.

  • @andreffrosa
    @andreffrosa Před 4 měsíci

    Why do you also separate the logging to its own layer?

  • @DrewryPope
    @DrewryPope Před 5 měsíci

    How is raptor/hollywood going? 🙂I remembered about that the other day

  • @vedantmatanhelia1016
    @vedantmatanhelia1016 Před 5 měsíci

    I wanted to do hexagon architecture for a.long time
    the problem for me is folder structure

  • @vanshajdhar9223
    @vanshajdhar9223 Před 5 měsíci

    Are these things covered in your Golang course?