The BEST Tool to Structure Golang Projects

Поделиться
HTML-код
  • Опубликовано: 30 янв 2025

Комментарии • 125

  • @MelkeyDev
    @MelkeyDev  8 месяцев назад +26

    I hope you enjoy this video!
    Comment + like - it means the world!

    • @maxwebstudio
      @maxwebstudio 8 месяцев назад +2

      Man that's so freakin cool. And the CLI actually looks awesome !

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +2

      @@maxwebstudio Hey thanks so much!

    • @maxamedqadar
      @maxamedqadar 7 месяцев назад

      +sub

    • @axMf3qTI
      @axMf3qTI 6 месяцев назад

      lets put bubble tea with wish in there too.

  • @parthokr
    @parthokr 8 месяцев назад +61

    finally spring initializr for go

  • @omarcrosby
    @omarcrosby 6 месяцев назад +2

    You beat me to it, I was working on my own project scaffolding tool but your's is better. Well done! This will save a ton of time.

    • @omarcrosby
      @omarcrosby 6 месяцев назад

      Planning on making any monorepo specific functionality to go-blueprint? Just curious.

    • @omarcrosby
      @omarcrosby 6 месяцев назад

      Last question, are you all adding a scaffolding option for http.ServeMux? or is that already covered in the Standard Library option?

  • @HypothesisI
    @HypothesisI 8 месяцев назад +12

    Cool man, this is a good project for newbies, even if I don't 100% agree with structure!

    • @j.e.3212
      @j.e.3212 5 месяцев назад +1

      What would you do differently?

  • @nantusbredenkamp9227
    @nantusbredenkamp9227 7 месяцев назад +4

    Hi @MelkeyDev
    What a great initiative. One less thing to figure out... It would be great if provision can also be made for a monorepo setup, where a couple of projects need to be accommodated, like say and API, workflow implementations, web apps etc. It is still very useful!

    • @MelkeyDev
      @MelkeyDev  7 месяцев назад +2

      We can look into this!

  • @rendisibarani3591
    @rendisibarani3591 19 дней назад

    its like a treasure finding your channel man

  • @thangnguyenvan1807
    @thangnguyenvan1807 4 месяца назад

    Thank you so much Melkey! This actually is what I need from youtube for days back.

  • @CodeCatalyst
    @CodeCatalyst 6 месяцев назад +1

    Thank you Ive been struggling with finding a "good" way to structure my project and most of the others structures i found were too complex for me because i am still a beginner with go.However this way is way too simpler and easy to understand

  • @earnstein7607
    @earnstein7607 8 месяцев назад +3

    This is cool. Thanks melkey for sharing this incredible tool

  • @sametrise
    @sametrise 8 месяцев назад +23

    - Option to select multiple database would be good like i can choose redis and sqlite together to use redis for caching and sqlite for normal db use cases.
    - Also i would like more options for dbs like valkey and some kind of vector database

  • @Dom-zy1qy
    @Dom-zy1qy 4 месяца назад

    I spent 2-3 days designing the most tryhard, over the top golang monorepo. Only to end up converging to a really simple structure. I used to dislike doing that before I really knew how to program, but it's actually a pretty exercise to do from time to time. I realized structuring a project is sort of similar to defining an interface.
    But I might end up checking some of these scaffolding type tools out next time I make a project. Seems pretty convenient.

  • @jackiechanface
    @jackiechanface 8 месяцев назад +3

    this is genuinely awesome, thanks a lot!

  • @jleatherland
    @jleatherland 7 месяцев назад +5

    This is exactly what I was looking for. Thank you! This is one of the hardest things for me to wrap my head around coming from js / dart
    Gosh darn you're a handsome man without that 'tache

    • @MelkeyDev
      @MelkeyDev  7 месяцев назад

      Glad you enjoyed the video!

  • @TheShawn_v
    @TheShawn_v 7 месяцев назад +1

    this is really cool, thanks for publishing this tool

  • @esra_erimez
    @esra_erimez 5 месяцев назад +5

    Okay, you convinced me, you're a GOAT of Go.

  • @SnowDaemon
    @SnowDaemon 8 месяцев назад +3

    Awesome tool.
    Extremely helpful

  • @betatrix8474
    @betatrix8474 2 месяца назад

    That's so nice ! thanks for this project ❤

  • @UmeshSavaliya-kd4yr
    @UmeshSavaliya-kd4yr 8 месяцев назад +4

    Just what I wanted to know, thanks

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад

      Youre welcome!

  • @JobinZero
    @JobinZero 8 месяцев назад

    Amazing CLI tool. Thanks for building this. I’m using the tool to structure a project in production.
    Although I did had some trouble with DBTX and pgx.pool. Somehow figured things out.
    Maybe you could also add an option to connect with sqlc as well.

  • @an-eios7125
    @an-eios7125 8 месяцев назад +2

    Thank you so much bro
    This is awesome

  • @brijeshamin
    @brijeshamin 8 месяцев назад +1

    Amazing.. this is what I was looking for

  • @akshaychauhan1988
    @akshaychauhan1988 8 месяцев назад +3

    Great tool. I think if you can add some base lib also, like logger, service discovery etc

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад

      That's a great idea

  • @darkfoxwillie
    @darkfoxwillie 8 месяцев назад +1

    thanks for the work! Might try later.

  • @franky1116
    @franky1116 8 месяцев назад +1

    Thanks for share 🎉 I'll use it for sure!!!

  • @macot79
    @macot79 8 месяцев назад +1

    Good stuff, well done!

  • @AlexandreOliveira369
    @AlexandreOliveira369 7 месяцев назад

    Excellent initiative, @MelkeyDev. Congratulations!
    How to install on Mac M1? Could you please share a step-by-step guide or include it in the evolution of the tool?

  • @DrKenzoT
    @DrKenzoT 8 месяцев назад

    This looks awesome! i'm not that well versed in go yet but. I would also add an option for a grpc server/consumer too. May as an option for the routing or as a whole project type like HTTP/GRPC.

  • @ustav_o
    @ustav_o 8 месяцев назад +1

    really nice stuff, ive been using it for a while.

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад

      Appreciate it homie!

  • @TonyYuTian
    @TonyYuTian 27 дней назад

    Go-blueprint is exciting! Your video is great! Cool 😁😁😁

  • @agusaris5031
    @agusaris5031 8 месяцев назад +5

    Backend project only? How about CLI or a service that consumes a message broker?

    • @hermes6910
      @hermes6910 8 месяцев назад +4

      You are probably free to PR to add the feature.
      But yeah, would be awesome to have most classical go usecase and not only backend.

  • @ghandn
    @ghandn 8 месяцев назад +2

    This is awesome!

  • @cig_in_mouth3786
    @cig_in_mouth3786 8 месяцев назад

    This video is amazing now I need a good auth blueprint and it has everything that I need with Vanilla taste

    • @ParanoidxProd
      @ParanoidxProd 8 месяцев назад +2

      If you’re interested in a really good book on the subject, Let’s Go (written by the creator of the scs package) which has a great chapter on auth. Makes it really easy to implement yourself and overall the book is amazing

    • @cig_in_mouth3786
      @cig_in_mouth3786 8 месяцев назад

      @@ParanoidxProd thanks I will read it soon one more question do you know about more backend and testing like I want to write unit test with my code so if you know some books please recommend me thanks you so much.

  • @ScottDonald78
    @ScottDonald78 8 месяцев назад +1

    Great work!

  • @codelinx
    @codelinx 8 месяцев назад

    wow i really like this. much appreciated

  • @stephenreaves3205
    @stephenreaves3205 8 месяцев назад +1

    This is great! I would love to see this using `podman kube play` instead of `docker-compose`

    • @ustav_o
      @ustav_o 8 месяцев назад +1

      that would be amazing. having a option to choose between those would be the perfect move.

  • @rodjenihm
    @rodjenihm 8 месяцев назад +28

    I put everything in main.go file

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +8

      Ah - a main of true culture

    • @ustav_o
      @ustav_o 8 месяцев назад +3

      based

    • @TehKarmalizer
      @TehKarmalizer 8 месяцев назад +2

      Excellent strategy for a project with no users. 👏🏻

  • @sakthi484
    @sakthi484 8 месяцев назад +1

    This is awesome. 👏👏

  • @bnssoftware3292
    @bnssoftware3292 5 месяцев назад

    Would also be nice to add ability to add multiple projects with shared libraries for use in a monorepo with separate Dockerfile for each project to build separately with it being GitHub Actions aware.

  • @StefanoBrozzi
    @StefanoBrozzi 8 месяцев назад +1

    Nice, I've still to check the code created, but: redis is missing from the webUI and (just like sametrise underlined) more than one single db could be used on the destination project.

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +1

      Yep for sure - but I think multi DB can be left for a more advanced approach

  • @rcarias78
    @rcarias78 14 часов назад

    What’s that terminal setting that has your name splashed when you open the cmd prompt ?.

  • @vladimirkolosov8836
    @vladimirkolosov8836 8 месяцев назад +1

    this is amazing

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +1

      Thank you! I hope you enjoy

  • @elwafdy
    @elwafdy 8 месяцев назад +1

    THANK YOU! 🎉⚡️

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +1

      Hope you enjoy!

  • @hugh5356
    @hugh5356 7 месяцев назад

    You should try giving nix/Devbox a go. You can replace Docker and Air with something that’s much better.

  • @thre-c7b
    @thre-c7b 2 месяца назад

    The most efficient structure is to keep everything in a root folder and only create new ones when absolutely necessary
    Then you’ll realize there’s no silver bullet-each project needs its own structure that fits
    Sure, examples can be useful, even the bad ones

  • @CLeovison
    @CLeovison 8 месяцев назад +1

    Hi Melkey! I was a follower of you for a bit of time and i'm just curious if did you also study dsa?
    Thank you so much

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +1

      Hey thanks for following :)
      I studied a bit of DSA!

  • @amnesiac7598
    @amnesiac7598 Месяц назад +1

    How do you have your tests in a separate directory? Go gets mad if I import anything in a test file.

  • @qoobes
    @qoobes 8 месяцев назад +1

    Nice one milky

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад

      Thank you sir!

  • @nicolaswolyniec1354
    @nicolaswolyniec1354 8 месяцев назад +1

    Pretty interesting 🎉

  • @omolaoyekayode709
    @omolaoyekayode709 8 месяцев назад +1

    Hi and thanks for this tutorial. However, I am having one issue. All changes I made to the .env file are not loaded in the go application. It's still using the original property values that came by default. How can I resolve this please?

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +1

      Off the top of my head I dont know - but maybe if you post an issue on the github we can look into it deeper for you

    • @omolaoyekayode709
      @omolaoyekayode709 8 месяцев назад

      @@MelkeyDev thanks for your response. I have been on this for hours. I tried calling this in main.go: godotenv.Overload() and then the new values were read but after removing this, the issue persist. Is there kind of cache I am not aware of?

  • @xeuxdev
    @xeuxdev 6 месяцев назад

    Hi,
    I used this tool (go beginner here)
    Nothing is running both make run, air, even a build of go and running the main.exe retuns nothing.
    I dont want to use docker

  • @heismyke
    @heismyke День назад

    This is really helpful. But I have issues making payments on your website

  • @dmitrynizhnikov657
    @dmitrynizhnikov657 8 месяцев назад +1

    isn't it better to add features as you need it. for example add docker-compose only when you ready to deploy and smth like that. I thought that minimilizm as you go what separates some kind of js development from go dev

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад

      The docker-compose is just for people who want to spin up a quick db along their restful api

    • @dmitrynizhnikov657
      @dmitrynizhnikov657 8 месяцев назад

      ​@@MelkeyDevwell, it's just that it gives you some stuff that you don't initially need, and either you keep that without using it yet, or you just delete it. So eventually just easier to create everything gradually as you go

  • @camperec
    @camperec 4 месяца назад

    Hello I have a problem using go-blueprint... I init project with chi + mongo. Run 'make docker-up' (check if mongo is initialized - no problem). But when I try to run 'make run' nothing happens. Not even a single line in terminal output. Any suggestions? Tried to google some similar problems but nothing poped up. I even commented db initialization (thought something wrong can be happening here). Thanks a lot

  • @laputafelix
    @laputafelix 8 месяцев назад

    I’m gonna start my first golangHTMX project.

  • @cig_in_mouth3786
    @cig_in_mouth3786 8 месяцев назад

    Hello melkey, hope you are doing fine, should I write my backend cms in go?
    Like a friend suggesting django because it is batteries included so development is faster, I am afraid that can I write secure code?
    (Imposter syndrome)

  • @AndjelkoNS
    @AndjelkoNS 7 месяцев назад +1

    Could you add etcd please?

  • @erodotosdemetriou6506
    @erodotosdemetriou6506 8 месяцев назад

    Does this project support Message Queues connection too?

  • @ahs4739
    @ahs4739 8 месяцев назад +3

    add auth/sessions optional blueprint

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +2

      Maybe!

    • @ahs4739
      @ahs4739 8 месяцев назад +1

      @@MelkeyDev a video about doing auth+sessions right (with realistic examples and more or less thorough) would also be very nice! (learning about it now and it is very hard for me to find good resources with full examples and not only superabstracted/-simplified ones)

  • @turkerburak
    @turkerburak 8 месяцев назад

    thanks!

  • @j.r.r.tolkien8724
    @j.r.r.tolkien8724 8 месяцев назад +1

    It's great.

  • @alirezashayegan8260
    @alirezashayegan8260 8 месяцев назад

    I like that it's good project

  • @jekkillbee9931
    @jekkillbee9931 8 месяцев назад +1

    not installing on Mac

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад

      What is the issue? You can add on github or in discord

    • @context.Background
      @context.Background 7 месяцев назад

      You have to add the go/bin directory to path

  • @nexovec
    @nexovec 5 месяцев назад

    In a world where a lot of go projects use a completely flat file structure, to me the importance of project structure seems inflated.
    Which didn't prevent me from using an even more complicated project layout than you 😂

  • @ertugrulghazi334
    @ertugrulghazi334 5 месяцев назад

    Pain.go away

  • @puneetdhiman5194
    @puneetdhiman5194 8 месяцев назад

    Damn

  • @jogurtnaturalny
    @jogurtnaturalny 8 месяцев назад +1

    I kissed a girl

    • @MelkeyDev
      @MelkeyDev  8 месяцев назад +4

      whats a girl

    • @IQof2
      @IQof2 8 месяцев назад +2

      you should try Arch

    • @mikesmarcell15
      @mikesmarcell15 8 месяцев назад

      And you liked it?

  • @टिरंजननकले
    @टिरंजननकले 7 месяцев назад +23

    Go slowly becoming another Java. Instead of understanding the language , programmer tries to learn framework/library.

    • @MelkeyDev
      @MelkeyDev  7 месяцев назад +25

      That's an incorrect statement

    • @टिरंजननकले
      @टिरंजननकले 7 месяцев назад +5

      @@MelkeyDev
      Right from logging to project structure to database operations, now Go libraries or frameworks are being used.

    • @m0r4ag
      @m0r4ag 6 месяцев назад

      @@टिरंजननकलेyeah, they added loops, functions, variables, Go is just a Java wannabe. Im afraid that they will eventually add the feature of commenting in the code

    • @knowledgedose1956
      @knowledgedose1956 6 месяцев назад +3

      Go is easy. Much easier than Java

    • @vladislav_artyukhov
      @vladislav_artyukhov 5 месяцев назад +2

      It's more like generated boilerplate, instead of creating frameworks to marry with.

  • @andrzejtymotenko6237
    @andrzejtymotenko6237 7 месяцев назад

    Useless. Too many bugs. Air has changed repo, checked HTMLx/Templ generates schema without templ directory, "make[1]: templ: No such file or directory
    make[1]: *** [Makefile:8: build] Error 127"

  • @MaikkunDev
    @MaikkunDev 5 месяцев назад +1

    This is awesome!