pkgsite
wild-workouts-go-ddd-example
Our great sponsors
pkgsite | wild-workouts-go-ddd-example | |
---|---|---|
13 | 30 | |
1,128 | 4,885 | |
2.2% | 2.4% | |
9.1 | 2.7 | |
3 days ago | 10 months ago | |
Go | Go | |
BSD 3-clause "New" or "Revised" License | 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.
pkgsite
-
Transitioning from more traditional OOP like C# to Go, what are the biggest coding style differences.
Reading the standard library will give you ideas/insight about various Go idiomatic patterns/approaches, and you can see a full website/API implementation in the pkg.go.dev repository (https://github.com/golang/pkgsite). Projects like https://github.com/etcd-io/etcd may be interesting too.
- What are well-developed web applications in Golang?
- Question about storing everything in an application struct in a web app
-
Mocking database queries - ask for opinion
Let's look at some real codebase for an example on how to write database tests without mocking. The source code for the Go package discovery site(https://pkg.go.dev/) is available at[1] That site uses postgres as its primary database[2]. The database package has a method called GetLatestInfo[3] that fetches the latest versions of a module. That method is called from the frontend http handlers[4] via an interface[5] When it comes to testing that frontend handler, you would expect the tests to use a mock implementation of that interface method. But that's not what they do, instead they use a real postgres database in the test[6].
-
Is there any conventionally accepted repo that is representative of well designed go code ?
The code behind pkg.go.dev is also open-source and might be an interesting read.
-
Generate godoc for pkg with generics
BTW, the number of dependencies of pkgsite surprises me: https://github.com/golang/pkgsite/blob/master/go.mod
-
Good example projects to look through? + a good number of other questions - sorry
The source for Go's pkg site has been helpful to me https://github.com/golang/pkgsite
- Looking for production-grade web app examples
-
Best courses to learn Go for backend?
In my unpopular opinion, the go net/http is good enough to develop the web http application. The standard API is clean and well-documented. One of example is the pkgsite (https://github.com/golang/pkgsite).
-
Golang.org Is Gone
It's also available as a mirror at https://github.com/golang/pkgsite. All the golang.org/x/* packages are thankfully available there, making them pretty easy to find.
wild-workouts-go-ddd-example
-
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.
-
Accomplishing Single Responsibility Principle in my project
Here is a reference implementation by the same authors of the blog post you referenced: https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example/tree/master/internal/trainer.
- Seeking Feedback on Go API Implementation using DDD
-
In depth, complex technical implementation videos?
In this case I recommend Three Dots Labs blog and Ardan Labs courses and blog posts.
-
Yet another RealWorld implementation - Go kit, PlanetScale, sqlx, chi
As a rather new developer, I'm ashamed to admit that I struggle with this. I've seen the Dave Cheney writeup about it and I agree with your reasoning, but sometimes I end up in situations like this, where they wrote a server utility, put it into the common package and imported it into the services that need it. The issue I have is the organization of it all because the folder structure seems to make a clear separation of the core services from the utility package. If you have any ideas or tips to help avoid it, that'd be awesome!
- Go Blogs
-
As a Go programmer, what design pattern, programming techniques have you actually used, implemented regularly in your workplace which made your life much easier?
Clean architecture is not tied to some specific paradigm. It's a way of thinking about programs that is common to almost every mature developer. Many developers use it without even knowing the name - they just came to it by themselves through many tries and errors. There is a good free book about using it in Go, called Go with the Domain if you interested.
-
Is there a good example of an open source non-trivial (DB connection, authentication, authorization, data validation, tests, etc...) Go API?
Wild Workouts should match your needs: https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example
-
Where can I find well-written go code to learn from?
For Event-Driven / DDD / Microservice projects, take a look at this Github org https://github.com/ThreeDotsLabs and their blog detailing the techniques used https://threedots.tech .
-
Domain-Driven Design Framework for Go Developers
Nice job at taking a stab at DDD in Go! You may want to check out https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example for some inspiration and learning around DDD and Go.
What are some alternatives?
solkit - A solitaire collection and solitaire construction kit for terminal
clean-architecture-golang - This is my purpose of how to structure a web application in golang following the clean architecture principles
golds - An experimental Go local docs server/generator and code reader implemented with some fresh ideas.
watermill - Building event-driven applications the easy way in Go.
wtf - WTF Dial is an example web application written in Go.
fx - A dependency injection based application framework for Go.
go-rabbitmq - A wrapper of streadway/amqp that provides reconnection logic and sane defaults
wire - Compile-time Dependency Injection for Go
keploy - Test generation for Developers. Generate tests and stubs for your application that actually work!
remix - Build Better Websites. Create modern, resilient user experiences with web fundamentals.
website - [mirror] Home of the go.dev and golang.org websites
eShopOnContainers - Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 7, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. Moved to https://github.com/dotnet/eShop.