-
Try this! This isn't "official" in any way, but I've found it is a very helpful resource. It proposes a structure to use and links to large, well-known projects following similar structures.
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
-
Really surprised I haven’t seen katzien/go-structure-example and her GopherCon 2018 talk about structuring your Go projects mentioned yet
-
exposure-notifications-server
Discontinued Exposure Notification Reference Server | Covid-19 Exposure Notifications
It's also popular to hate on golang-standards/project-layout here (mostly due to its misleading name), but then you'll find Google's own project following its general approach.
-
Unfortunately, there is no agreement right now on how a project should be structured. The two "variants" are by domain (packages like product, order, customer each with its own handler and repository) or by layer (packages like api, postgres, etc). Ben Johnson is a big proponent of the layering approach and has an entire sample project written for it.
-
Years ago when I was first getting into Go I found Upspin to be interesting reading (and I found it due to it being Rob Pike's project), but I don't know how it holds up today.
-
The code behind pkg.go.dev is also open-source and might be an interesting read.
-
InfluxDB
InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
-
Does orange forum count? https://github.com/s-gv/orangeforum
-
miller
Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON
Hmm, I'm no go expert, but one of the first tools written in go that I looked into is miller: https://github.com/johnkerl/miller
-
-
There are actually a lot of them. Recently found this template go-clean-template which seems to be great