krok
fx
Our great sponsors
krok | fx | |
---|---|---|
9 | 31 | |
13 | 5,175 | |
- | 3.3% | |
0.0 | 8.2 | |
over 1 year ago | 7 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
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.
krok
-
The fastest and easiest way of setting up the database for unit tests
Booting up a database in a container is relatively fast now-a-days. Take a look here: https://github.com/krok-o/krok/blob/main/tests/livestore/init_test.go
-
How to write unit test for gin golang
An example for this you can find here: https://github.com/krok-o/krok/tree/main/pkg/krok/providers/handlers
-
my first golang project!
Tests!!! You have none. :) If you want to test with a real DB instead of mocking everything you can do that with an ephemeral container that spins up relatively fast. Here is an example for that: https://github.com/krok-o/krok/blob/main/tests/livestore/init_test.go ( This might be a bit over your head depending on your experience maybe this post is better: https://docs.docker.com/language/golang/run-tests/ )
-
need help with "os/exec"
As others suggested, using the API is nicer. If you are looking for a nice example on how to do that take a look at my docker container executor code here: https://github.com/krok-o/krok/blob/main/pkg/krok/providers/executor/in_memory_executor.go :)
-
https://np.reddit.com/r/golang/comments/pn9k5r/what_is_swagger_and_how_to_implement_swagger_for/hcnxk69/
Here is an app where I'm using swagger and I create API documentation by using swagger generator and comments: https://github.com/krok-o/krok
-
Presenting Krok - Multiplatform webhook handling system with containerised commands
I would like to present a project I've been working on for 1.5 years or so, called Krok Github, Krok Website.
-
[Question] How to split main.go into separate packages/files whilst maintaining Dependency Injection?
Here is a fairly complex project which does just this: https://github.com/krok-o/krok
-
https://np.reddit.com/r/golang/comments/og9458/how_to_implement_swagger_ui_for_multiple_apis/h4kfmsa/
Adding to the other comments, this is how Krok uses swagger:
-
What is the fastest way to clear my SQL database between integration tests?
This creates a temporary database in a docker container while you are running your test. For an example look here: https://github.com/krok-o/krok/blob/main/tests/livestore/init_test.go
fx
-
I write HTTP services in Go after 13 years (Mat Ryer, 2024)
I found fx(https://github.com/uber-go/fx) to be a super simple yet versatile tool to design my application around.
All the advice in the article is still helpful, but it takes the "how do I make sure X is initialized when Y needs it" part completely out of the equation and reduces it from an N*M problem to an N problem, ie I only have to worry about how to initialize individual pieces, not about how to synchronize initialization between them.
I've used quite a few dependency injection libraries in various languages over the years (and implemented a couple myself) and the simplicity and versatility of fx makes it my favorite so far.
-
go-ecommerce-microservices: A practical e-commerce microservices, built with cqrs, event sourcing, vertical slice architecture, event-driven architecture.
Some of the features: - ✅ Using Vertical Slice Architecture as a high level architecture - ✅ Using Event Driven Architecture on top of RabbitMQ Message Broker with a custom [Event Bus](pkg/messaging/bus/) - ✅ Using Event Sourcing in Audit Based services like [Orders Service](services/orders/) - ✅ Using CQRS Pattern and Mediator Patternon top of Go-MediatR library - ✅ Using Dependency Injection and Inversion of Controlon top of uber-go/fx library - ✅ Using RESTFul api with Echo framework and using swagger with swaggo/swag library - ✅ Using Postgres and EventStoreDB to write databases with fully supports transactions(ACID) - ✅ Using MongoDB and Elastic Search for read databases (NOSQL) - ✅ Using OpenTelemetry for collection Distributed Tracing with using Jaeger and Zipkin - ✅ Using OpenTelemetry for collection Metrics with using Prometheus and Grafana - ✅ Using Unit Test for testing small units with mocking dependent classes and using Mockery for mocking dependencies - ✅ Using End2End Test and Integration Test for testing features with all of their real dependeinces using docker containers (cleanup tests) and testcontainers-go library
-
Gorilla,wow
any take on https://github.com/uber-go/fx?
-
App init and graceful watch lib recommendations ?
I’m not sure of much that can do all of that - maybe it’s a use case for https://github.com/uber-go/fx
-
How normal is it to stare at your screen, getting nothing done when stuck and waiting for help?
If I still find myself stuck/waiting, I switch over to studying more about our team's main language Go. Currently looking around at Fx ( https://github.com/uber-go/fx ). Which is interesting, though I doubt we'll actually migrate anything for it, but might make a neat lunch and learn topic.
-
Zerolog printing logs multiple times
Hello gophers, I am using https://github.com/uber-go/fx and https://github.com/rs/zerolog for logging.
-
Does this project structure make sense?
Also, I like to use Uber FX for my DI stuff. You can check it out here:https://github.com/uber-go/fx
-
As a Go programmer, what design pattern, programming techniques have you actually used, implemented regularly in your workplace which made your life much easier?
I only have private and work repos... But I use Uber fx. https://github.com/uber-go/fx
-
Does Golang has any framework like Springboot?
Spring Boot is notable for its dependency injection / inversion of control. The closest Go has to this is Uber's Fx which also includes some lifecycle management.
-
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.
What are some alternatives?
typhon - A wrapper around Go's net/http to provide safety and convenience. At Monzo, Typhon forms the basis of most clients and servers in our microservices platform.
dig - A reflection based dependency injection toolkit for Go.
todo-api-microservice-example - Go microservice tutorial project using Domain Driven Design and Onion Architecture!
wire - Compile-time Dependency Injection for Go
sql-migrate - SQL schema migration tool for Go.
wire - Strict Runtime Dependency Injection for Golang
go-banking-api - Banking API implementation using Go
container - A lightweight yet powerful IoC dependency injection container for the Go programming language
microservicebotexample
captcha - :sunglasses:Package captcha provides an easy to use, unopinionated API for captcha generation
txdriver - txdriver provides transaction isolation for Go SQL tests
wild-workouts-go-ddd-example - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.