Structure Your Golang Service With Layers Like This
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
╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
╠╗║╚╝║║╠╗║╚╣║║║║║═╣
╚═╩══╩═╩═╩═╩╝╚╩═╩═╝
► 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
Hi! Have you thought about uploading your courses to the Udemy platform?
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.
Yeah I really like this approach. It makes testing so much easier as well!
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.
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?
Yes, read up on dependency inversion and testing
Better to test the business logic. As the handler is more of the integration part imo
@@anthonygg_ omg this answer blown my mind. I got what you mean, you are correct man, thanks
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
It reflects for all languages
I love the onion/ hexagonal Arch. what you think about it?
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.
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.
Why do you also separate the logging to its own layer?
How is raptor/hollywood going? 🙂I remembered about that the other day
I wanted to do hexagon architecture for a.long time
the problem for me is folder structure
Are these things covered in your Golang course?