wire
wild-workouts-go-ddd-exampl
wire | wild-workouts-go-ddd-exampl | |
---|---|---|
30 | 3 | |
12,340 | - | |
1.3% | - | |
2.7 | - | |
about 2 months ago | - | |
Go | ||
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wire
-
Borgo is a statically typed language that compiles to Go
code generation is a mostly disjoint topic from DI. Granted, some solutions like https://github.com/google/wire use code generation, but you're exactly right about their pitfalls. If your dev environment doesn't have good support for generated code, it is a nightmare. If you can goto-definition the generated code, then it is suddenly feasible, but perhaps still a bad choice.
- Injeção de dependência em Go
-
Question about dependency initialization
We use https://github.com/google/wire for every bigger project, take a look at it, it beautifully solves initialisation and also gives you a guideline on how to do it.
-
As a Go programmer, what design pattern, programming techniques have you actually used, implemented regularly in your workplace which made your life much easier?
Im by no means a "purist" in such things, I love my magic and QoL-features/libs, but havent seen something that is so easy to use in go, that I immediately wanted to add it. And to be fair, I only looked closely at https://github.com/google/wire , others I have just skipped - and I will be looking into uber-fx as mentioned in the other comment.
-
Config for production and mocking (db connections, http parsers etc)
If you have such a complex and deep dependency graph, and you don't want to manually maintain it, you could use some DI library to handle that for you. Something like https://github.com/google/wire for small-medium size stuff, or https://github.com/uber-go/fx for larger scale, more enterprise projects.
- Is it just me or does nobody really know what idiomatic Go is.
-
What's the best dependency injection framework / methodology for Golang for the enterprise?
Try https://github.com/google/wire. Compile time generated like dagger 2 in java.
-
Modern API design with Golang, PostgreSQL and Docker.
Most people probably do it by hand (I do). But otherwise, probably https://github.com/google/wire is the most popular, maybe followed by https://github.com/uber-go/fx.
-
Google's internal Go style guide
For larger object graphs do you roll everything by hand or encourage something like https://github.com/google/wire
-
godi a New Dependency Injection library - feedback welcome
The other thing is that I'm lazy, so I don't construct all dependencies in main.go manually but use wire to generate the construction of my dependency tree.
wild-workouts-go-ddd-exampl
-
Looking for elegant code bases written in Golang
Take a look at: https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-exampl...
(I’m one of the authors.)
This project shows how to apply more complex patterns popular in business applications while staying true to the Go ideas, and not copying them blindly from Java.
In the Go community, you’ll often hear people say „just keep things simple” beats all patterns and is all you need. This may be true if you write a CLI tool or a small library, but if you have a team maintaining a big application, some patterns are super helpful.
-
Auto-Generated C4 Architecture Diagrams in Go
Hey HackerNews!
One o the most common problems in IT projects is the problem of out-of-date documentation or lack of documentation. Architecture diagrams are an essential part of it.
C4 Model is trying to help with that by providing a tool that helps to standardize a way to create clear architecture diagrams on multiple levels.
But having a standard practice to follow is not enough to have this documentation up-to-date. Because of that, Krzysztof from my team created a script that can make these diagrams directly from the code.
Unfortunetly we can't share our company code. Fortunately, we have Wild Workouts DDD example that is a perfect use case to show the power of that tool: https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-exampl....
The linked article describes all the needed steps to create these diagrams. Feel free to play with it and try to add it to your project.
If you want to know more about Wild Workouts DDD example, they are already 14 articles that describe the project in detail: https://threedots.tech/series/modern-business-software-in-go....
-
Show HN: We wrote a book about building business applications in Go
Here is example code and blog series for a step-by-step DDD-based refactoring of an existing app. Don't know if they are the same as what's used in the book, but found them quite interesting.
https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-exampl...
What are some alternatives?
fx - A dependency injection based application framework for Go.
wild-workouts-go-ddd-example - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
dig - A reflection based dependency injection toolkit for Go.
watermill - Building event-driven applications the easy way in Go.
gomock - GoMock is a mocking framework for the Go programming language.
do - ⚙️ A dependency injection toolkit based on Go 1.18+ Generics.
container - A lightweight yet powerful IoC dependency injection container for the Go programming language
goioc/di - Simple and yet powerful Dependency Injection for Go
nject - Golang type-safe dependency injection
go-kit - A standard library for microservices.
gocontainer - Simple Dependency Injection Container