The BEST Tool to Structure Golang Projects

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 121

  • @MelkeyDev
    @MelkeyDev  7 หลายเดือนก่อน +24

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

    • @maxwebstudio
      @maxwebstudio 7 หลายเดือนก่อน +2

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

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +2

      @@maxwebstudio Hey thanks so much!

    • @maxamedqadar
      @maxamedqadar 6 หลายเดือนก่อน

      +sub

    • @axMf3qTI
      @axMf3qTI 5 หลายเดือนก่อน

      lets put bubble tea with wish in there too.

  • @parthokr
    @parthokr 7 หลายเดือนก่อน +58

    finally spring initializr for go

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +2

      wooo? (i think?)

    • @guglielmobartelloni
      @guglielmobartelloni 7 หลายเดือนก่อน

      I thought the same thing 😂

    • @abedalrawas2656
      @abedalrawas2656 7 หลายเดือนก่อน

      😂😂😂

    • @go_lang_thang
      @go_lang_thang 6 หลายเดือนก่อน +1

      lack of something. But good to GOOOOOOO

    • @xpynim
      @xpynim 6 หลายเดือนก่อน

      wtf, fo real 😂

  • @esra_erimez
    @esra_erimez 4 หลายเดือนก่อน +5

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

  • @Dom-zy1qy
    @Dom-zy1qy 3 หลายเดือนก่อน

    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.

  • @omarcrosby
    @omarcrosby 5 หลายเดือนก่อน +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 5 หลายเดือนก่อน

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

    • @omarcrosby
      @omarcrosby 5 หลายเดือนก่อน

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

  • @sametrise
    @sametrise 7 หลายเดือนก่อน +20

    - 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

  • @amnesiac7598
    @amnesiac7598 2 วันที่ผ่านมา +1

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

  • @CodeCatalyst
    @CodeCatalyst 5 หลายเดือนก่อน +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

  • @HypothesisI
    @HypothesisI 7 หลายเดือนก่อน +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 3 หลายเดือนก่อน +1

      What would you do differently?

  • @StefanoBrozzi
    @StefanoBrozzi 6 หลายเดือนก่อน +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  6 หลายเดือนก่อน +1

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

  • @nantusbredenkamp9227
    @nantusbredenkamp9227 6 หลายเดือนก่อน +3

    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  6 หลายเดือนก่อน +1

      We can look into this!

  • @thangnguyenvan1807
    @thangnguyenvan1807 3 หลายเดือนก่อน

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

  • @rodjenihm
    @rodjenihm 7 หลายเดือนก่อน +27

    I put everything in main.go file

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +7

      Ah - a main of true culture

    • @ustav_o
      @ustav_o 6 หลายเดือนก่อน +3

      based

    • @TehKarmalizer
      @TehKarmalizer 6 หลายเดือนก่อน +2

      Excellent strategy for a project with no users. 👏🏻

  • @agusaris5031
    @agusaris5031 7 หลายเดือนก่อน +5

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

    • @hermes6910
      @hermes6910 7 หลายเดือนก่อน +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.

  • @earnstein7607
    @earnstein7607 7 หลายเดือนก่อน +3

    This is cool. Thanks melkey for sharing this incredible tool

  • @thre-c7b
    @thre-c7b หลายเดือนก่อน

    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

  • @omolaoyekayode709
    @omolaoyekayode709 6 หลายเดือนก่อน +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  6 หลายเดือนก่อน +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 6 หลายเดือนก่อน

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

  • @akshaychauhan1988
    @akshaychauhan1988 6 หลายเดือนก่อน +3

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

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน

      That's a great idea

  • @xeuxdev
    @xeuxdev 5 หลายเดือนก่อน

    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

  • @jackiechanface
    @jackiechanface 7 หลายเดือนก่อน +3

    this is genuinely awesome, thanks a lot!

  • @TheShawn_v
    @TheShawn_v 5 หลายเดือนก่อน +1

    this is really cool, thanks for publishing this tool

    • @MelkeyDev
      @MelkeyDev  5 หลายเดือนก่อน

      No problem

  • @bnssoftware3292
    @bnssoftware3292 4 หลายเดือนก่อน

    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.

  • @betatrix8474
    @betatrix8474 หลายเดือนก่อน

    That's so nice ! thanks for this project ❤

  • @camperec
    @camperec 3 หลายเดือนก่อน

    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

  • @AlexandreOliveira369
    @AlexandreOliveira369 6 หลายเดือนก่อน

    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?

  • @SnowDaemon
    @SnowDaemon 7 หลายเดือนก่อน +3

    Awesome tool.
    Extremely helpful

  • @UmeshSavaliya-kd4yr
    @UmeshSavaliya-kd4yr 7 หลายเดือนก่อน +4

    Just what I wanted to know, thanks

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน

      Youre welcome!

  • @AndjelkoNS
    @AndjelkoNS 6 หลายเดือนก่อน +1

    Could you add etcd please?

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน +1

      yeah

  • @DrKenzoT
    @DrKenzoT 6 หลายเดือนก่อน

    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.

  • @dmitrynizhnikov657
    @dmitrynizhnikov657 6 หลายเดือนก่อน +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  6 หลายเดือนก่อน

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

    • @dmitrynizhnikov657
      @dmitrynizhnikov657 6 หลายเดือนก่อน

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

  • @JobinZero
    @JobinZero 7 หลายเดือนก่อน

    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.

  • @hugh5356
    @hugh5356 6 หลายเดือนก่อน

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

  • @an-eios7125
    @an-eios7125 7 หลายเดือนก่อน +2

    Thank you so much bro
    This is awesome

  • @brijeshamin
    @brijeshamin 7 หลายเดือนก่อน +1

    Amazing.. this is what I was looking for

  • @stephenreaves3205
    @stephenreaves3205 7 หลายเดือนก่อน +1

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

    • @ustav_o
      @ustav_o 6 หลายเดือนก่อน +1

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

  • @laputafelix
    @laputafelix 6 หลายเดือนก่อน

    I’m gonna start my first golangHTMX project.

  • @darkfoxwillie
    @darkfoxwillie 7 หลายเดือนก่อน +1

    thanks for the work! Might try later.

  • @erodotosdemetriou6506
    @erodotosdemetriou6506 7 หลายเดือนก่อน

    Does this project support Message Queues connection too?

  • @CLeovison
    @CLeovison 6 หลายเดือนก่อน +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  6 หลายเดือนก่อน +1

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

  • @macot79
    @macot79 7 หลายเดือนก่อน +1

    Good stuff, well done!

  • @cig_in_mouth3786
    @cig_in_mouth3786 7 หลายเดือนก่อน

    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)

  • @franky1116
    @franky1116 6 หลายเดือนก่อน +1

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

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน

      YAY

  • @ustav_o
    @ustav_o 6 หลายเดือนก่อน +1

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

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน

      Appreciate it homie!

  • @ScottDonald78
    @ScottDonald78 7 หลายเดือนก่อน +1

    Great work!

  • @ahs4739
    @ahs4739 7 หลายเดือนก่อน +3

    add auth/sessions optional blueprint

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +2

      Maybe!

    • @ahs4739
      @ahs4739 7 หลายเดือนก่อน +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)

  • @ghandn
    @ghandn 7 หลายเดือนก่อน +2

    This is awesome!

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +1

      Hell yeah!

  • @cig_in_mouth3786
    @cig_in_mouth3786 7 หลายเดือนก่อน

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

    • @ParanoidxProd
      @ParanoidxProd 7 หลายเดือนก่อน +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 7 หลายเดือนก่อน

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

  • @jekkillbee9931
    @jekkillbee9931 6 หลายเดือนก่อน +1

    not installing on Mac

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน

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

    • @context.Background
      @context.Background 6 หลายเดือนก่อน

      You have to add the go/bin directory to path

  • @codelinx
    @codelinx 7 หลายเดือนก่อน

    wow i really like this. much appreciated

  • @qoobes
    @qoobes 6 หลายเดือนก่อน +1

    Nice one milky

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน

      Thank you sir!

  • @vladimirkolosov8836
    @vladimirkolosov8836 7 หลายเดือนก่อน +1

    this is amazing

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน +1

      Thank you! I hope you enjoy

  • @sakthi484
    @sakthi484 7 หลายเดือนก่อน +1

    This is awesome. 👏👏

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน

      HUrray

  • @elwafdy
    @elwafdy 7 หลายเดือนก่อน +1

    THANK YOU! 🎉⚡️

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +1

      Hope you enjoy!

  • @jleatherland
    @jleatherland 6 หลายเดือนก่อน +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  6 หลายเดือนก่อน

      Glad you enjoyed the video!

  • @nicolaswolyniec1354
    @nicolaswolyniec1354 7 หลายเดือนก่อน +1

    Pretty interesting 🎉

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน

      :)

  • @turkerburak
    @turkerburak 7 หลายเดือนก่อน

    thanks!

  • @alirezashayegan8260
    @alirezashayegan8260 6 หลายเดือนก่อน

    I like that it's good project

  • @j.r.r.tolkien8724
    @j.r.r.tolkien8724 7 หลายเดือนก่อน +1

    It's great.

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน

      Thank you!

  • @nexovec
    @nexovec 4 หลายเดือนก่อน

    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 4 หลายเดือนก่อน

    Pain.go away

  • @puneetdhiman5194
    @puneetdhiman5194 7 หลายเดือนก่อน

    Damn

  • @jogurtnaturalny
    @jogurtnaturalny 7 หลายเดือนก่อน +1

    I kissed a girl

    • @MelkeyDev
      @MelkeyDev  7 หลายเดือนก่อน +4

      whats a girl

    • @IQof2
      @IQof2 7 หลายเดือนก่อน +2

      you should try Arch

    • @mikesmarcell15
      @mikesmarcell15 7 หลายเดือนก่อน

      And you liked it?

  • @टिरंजननकले
    @टिरंजननकले 6 หลายเดือนก่อน +23

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

    • @MelkeyDev
      @MelkeyDev  6 หลายเดือนก่อน +20

      That's an incorrect statement

    • @टिरंजननकले
      @टिरंजननकले 6 หลายเดือนก่อน +5

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

    • @m0r4ag
      @m0r4ag 5 หลายเดือนก่อน

      @@टिरंजननकले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 4 หลายเดือนก่อน +3

      Go is easy. Much easier than Java

    • @vladislav_artyukhov
      @vladislav_artyukhov 4 หลายเดือนก่อน +2

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

  • @andrzejtymotenko6237
    @andrzejtymotenko6237 6 หลายเดือนก่อน

    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 4 หลายเดือนก่อน +1

    This is awesome!