Тёмный

How To Structure Your Golang (API) Projects!? 

Anthony GG
Подписаться 59 тыс.
Просмотров 44 тыс.
0% 0

► Join my Discord community for free education 👉 / discord
► Become a Patreon for more exclusive content 👉 / anthonygg_
► Buy my a coffee 👉 donate.stripe.com/aEU2a6ayH2u...
► Follow me on Twitter 👉 / anthdm
► Follow me on GitHub 👉 github.com/anthdm
In this Golang tutorial, I will show you MY best practices on how to structure your Golang (API) projects.
#golang

Опубликовано:

 

29 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 67   
@anthonygg_
@anthonygg_ Год назад
► Join my Discord community for free education 👉 discord.com/invite/bDy8t4b3Rz ► Become a Patreon for exclusive tutorials👉 www.patreon.com/anthonygg_ ► Buy me a coffee 👉 donate.stripe.com/aEU2a6ayH2uCa3u4gg Thanks for watching
@TheRealisticNihilist
@TheRealisticNihilist Год назад
I love the way this guy says "structure".
@mwnkt
@mwnkt Год назад
loving the consistency in uploads, loving the channel so far
@linhnguyen05111999
@linhnguyen05111999 3 месяца назад
omg amazing! I really needed this. Great example, especially the storage interface.
@scarthebadguy
@scarthebadguy Год назад
Hey mate these are great videos. I love how verbose you are as you type. I learn more from you talking than I have from any udemy course
@krislui852
@krislui852 9 месяцев назад
just learnt go recently and trying to build my first project on it. tried different ways to structure my project but found them being quite messy. great video, helps a lot.
@Incolent
@Incolent Год назад
Just stumbled upon your channel. Amazing content for students! Keep it coming!
@anthonygg_
@anthonygg_ Год назад
Welcome aboard!
@davidhtorres
@davidhtorres 10 месяцев назад
These videos are awesome! Thank you! Very clear!
@jondoe79
@jondoe79 Год назад
Super clean, it's grouped by feature.
@pss_crs
@pss_crs Год назад
I'm regretting notvdiscovered this channel early thanks.
@Leon-cj8hd
@Leon-cj8hd 11 месяцев назад
Your coding speed is insane, even while talking. Viewed some videos, I think the content is great, thanks a lot :)
@andreimikhalkevich5633
@andreimikhalkevich5633 Год назад
go ahead Anthony, very helpful skills
@joshb7001
@joshb7001 Год назад
You are pumping out golden eggs non stop. Thank you
@tintin537
@tintin537 Год назад
Thank you. as always superb.
@terriprifti5069
@terriprifti5069 Год назад
This is a gem 💎
@blazinglyfaster9935
@blazinglyfaster9935 Год назад
Perfect timing 🚀🚀🚀
@Shatterhand16
@Shatterhand16 Год назад
Watched your "Important Tips On How To Write Idiomatic Code In Golang" just before watching this, and I believe that the interface declared in <a href="#" class="seekto" data-time="482">8:02</a> should be Storer instead of Storage, same for module name. Additionally maybe it would be worth to enable screencast mode in vscode with smaller font and offset? I think it'd be great to learn some of the shortcuts that allow you to be that fast just by watching. By the way loving the content, keep it up!
@anthonygg_
@anthonygg_ Год назад
Yeah storer would maybe more idiomatic. You are right.
@jean-naymar602
@jean-naymar602 9 месяцев назад
This is a common misconception but the "effective go" doc does NOT say that every interface should end in -er. Instead, it says that IF an interface defines only 1 method, then this interface should be named by appending -er to the method's name : "By convention, one-method interfaces are named by the method name plus an -er suffix" That's it. (Admittedly, one method interfaces should be what you aim for anyway but still, you shouldn't bother naming multi-method interfaces with -er...)
@Shatterhand16
@Shatterhand16 9 месяцев назад
@@jean-naymar602 That's cool to know, thanks for detailed explanation!
@frozenn00b
@frozenn00b 6 месяцев назад
Breaking all the Golang project structure conventions for "reasons". Convention is to use cmd, internal, pkg, test for sorting your packages... arbitrary folder structures introduce additional hurdles for newcomers to the project to figure out what you're doing.
@JohnDoe-ji1zv
@JohnDoe-ji1zv Год назад
Anthony thanks for the video! Would like to get your opinion on di frameworks like Uber fx. Do you use dependency injection frameworks in your applications ?
@cothromachd
@cothromachd Год назад
anthony the sigma
@ThePandaGuitar
@ThePandaGuitar Год назад
I don't know Go and that flag string is awesome. I can see why making CLIs in Go is sweet.
@Noudapi
@Noudapi 3 месяца назад
Hey Anthony thank you for your video. I just don't understand how you implement the storage interface. Do you add all the functions to implement for all entities of your database?
@bmitch3020
@bmitch3020 Год назад
"package util" oh no, Oh no no no no no.
@jorisjansen2892
@jorisjansen2892 Год назад
🚀🚀
@JanPhilippHeinrich
@JanPhilippHeinrich Год назад
Hey Anthony, basically this is a good video but could you explain why you put the interface for store right there where it is implemented? I learned that we use duck typing / structural typing which means we would put the interface were it is used.
@anthonygg_
@anthonygg_ Год назад
In have a video explaining interfaces and why you should use them
@soufta5872
@soufta5872 7 месяцев назад
Hi there. Is golang a good thing for sysadmin and autmation projects ? I don't want to use python especially when it comes to third party librairies that are hard to install on production ! Thanks
@rafaelcordoba13
@rafaelcordoba13 11 месяцев назад
How would you organize all the other go files based on application features? For a game server for example, you have a shop, daily quests, daily login, clans, events, wallet, etc. How do you see that scaling?
@anthonygg_
@anthonygg_ 11 месяцев назад
Just separate handlers, data, and business logic
@maximilianlang7175
@maximilianlang7175 Год назад
If you have more than one route, maybe something like /users and /books. Would you implement one store for all or would you have one store for all your types?
@anthonygg_
@anthonygg_ Год назад
Depends. You could make more interfaces for each domain if you want. Otherwise your storage interface will be a raidboss
@maximilianlang7175
@maximilianlang7175 Год назад
@@anthonygg_ Thanks! So you would have a user and a book interface and then several implementations for mongo oder mysql
@anthonygg_
@anthonygg_ Год назад
@@maximilianlang7175 Yes. UserStorage, bookStorage and so on.
@maximilianlang7175
@maximilianlang7175 Год назад
@@anthonygg_ and do you plan to make a video about mongo?
@anthonygg_
@anthonygg_ Год назад
@@maximilianlang7175 good idea, will note that.
@nickchristoforidis6176
@nickchristoforidis6176 Год назад
Hello Anthony, A while ago, I just watch the "How To Build And Structure A JSON API Project In Golang!?" video, in which you're following a sightly different approach concerning the folders/packages structure (which I love very much BTW). "Everything on root" you're saying, "unless it's really needed". I'd like to ask you why? Does this happen because the videos are from different time? Thank you.
@anthonygg_
@anthonygg_ Год назад
My personal opinion is to keep things very simple and with as less folders possible. Because soon or later you will end up with circular dependencies. But I know that this is very hard for a lot of people to switch to due to the fact that the meta is to folderize like a mad men. So, I try to switch things up and give people multiple approaches on "how they could structure Golang applications".
@nickchristoforidis6176
@nickchristoforidis6176 Год назад
@@anthonygg_ Got it! I'm just starting and I'm friend of the minimalistic approach. You've right though.
@andrewcathcart
@andrewcathcart Год назад
Random, but can you export your vscode setup? Theme looks v clean
@anthonygg_
@anthonygg_ Год назад
github.com/anthdm/vscode-config
@hello-test-user
@hello-test-user 10 месяцев назад
make : The term 'make' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1
@jed271
@jed271 Год назад
What are your thoughts on hexagonal architecture?
@anthonygg_
@anthonygg_ Год назад
Thats a scam
@jed271
@jed271 Год назад
@@anthonygg_ can you elaborate more? I really like your contents
@anthonygg_
@anthonygg_ Год назад
@@jed271 I think that people are inventing new ways of doing things because they have nothing better to do. My advice is to just solve the problem and do what works for you. The folder structure I showed you worked very well for me and I think it's a structure that is also highly adopted by a lot of big open-source projects. Don't make it too complex.
@pavelastraukh9905
@pavelastraukh9905 9 месяцев назад
Is there a reason why store is passed by value and not by reference?
@MaheshKumar-tc3gn
@MaheshKumar-tc3gn 3 месяца назад
Do you keep everything in server package. Server package will handle user requests, in future it will handle all the separate modules? I think it is bad idea and bad structure
@kamalkamals
@kamalkamals Год назад
so the storage it s look like session of connection to mongodb, but is that a best practice to inject it as params in every function of the services ?? why no use it like a global variable !
@anthonygg_
@anthonygg_ Год назад
Yup. Im using that approach right now.
@kamalkamals
@kamalkamals Год назад
@@anthonygg_ greate i use with graphql and works good, are u test before upload file with graphql ?? sorry if that is not the topic of this video
@2gbeh
@2gbeh 3 месяца назад
🇳🇬 Is Go a high level language ? This syntax looks sick (in a bad way).
@VeereshPatel15
@VeereshPatel15 Год назад
Hi bro, how to learn golang --->>>Please explain learning path about golang & solidity -- >>>> how to learn / build /test/ deploy frontend for web 3 projects
@pedrohenriquebufulindealme5763
Do you have any video that extends on the Storage pattern you showed?
@anthonygg_
@anthonygg_ Год назад
Hmm. Not sure. I use it in a lot of streams and projects
@gustavogoncalves2101
@gustavogoncalves2101 Год назад
At interface storage can we make a gerenic interface with the default CRUD methods to work with N models?
@Laflamablanca969
@Laflamablanca969 Год назад
Yes. Use generics for this.
@insert-name1500
@insert-name1500 Год назад
What's the name of this VS Code theme?
@anthonygg_
@anthonygg_ Год назад
Gruvbox
@faizulla5838
@faizulla5838 2 месяца назад
A lot off Bla Bla Bloa ... "How To Structure Your Golang (API) Projects!?" , but just 3 min about structure .... why need in this video inside the file? 20 min video will good talk mi 15 min about folders and fills but not about insite the file.
@rezaneyrami7944
@rezaneyrami7944 6 месяцев назад
Hello . I wish you would speak more slowly. I can hardly communicate with your language. If possible, speak more slowly... Thank you
@samess_
@samess_ Год назад
Please create a cli app that generates the template of your structured project...🥲
@Gertozzz
@Gertozzz Год назад
When are you going to code a Shalien server? Request.get.go
@anthonygg_
@anthonygg_ Год назад
Thats a BIG task
Далее
This Is The BEST Way To Structure Your GO Projects
11:08
A Practical Example How To Use Interfaces In Golang
14:42
How to create your Golang APIs from now on with v1.22
12:51
Golang is OG?
5:16
Просмотров 6 тыс.
Mastering Dependency Injection In Golang
14:29
Просмотров 44 тыс.
From React To HTMX
40:01
Просмотров 305 тыс.
Creating a JSON CRUD API in Go (Gin/GORM)
34:08
Просмотров 109 тыс.
you need to build a RUST desktop app!!
27:21
Просмотров 284 тыс.