cookiecutter-golang
golang-standards/project-layout
Our great sponsors
cookiecutter-golang | golang-standards/project-layout | |
---|---|---|
2 | 194 | |
666 | 45,384 | |
- | 2.5% | |
2.4 | 6.4 | |
about 2 months ago | 19 days ago | |
Go | Makefile | |
MIT License | GNU General Public License v3.0 or later |
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.
cookiecutter-golang
-
How awesome is cookiecutter?
~ cookiecutter https://github.com/lacion/cookiecutter-golang.git full_name [Luis Morales]: Ricardo Castro github_username [lacion]: mccricardo app_name [mygolangproject]: demo project_short_description [A Golang project.]: A demo docker_hub_username [lacion]: mccricardo docker_image [lacion/alpine-base-image:latest]: golang:1.16.5-apline3.14 docker_build_image [lacion/alpine-golang-buildimage]: golang:1.16.5-apline3.14 Select docker_build_image_version: 1 - 1.13 2 - 1.12.9 3 - 1.11.9 Choose from 1, 2, 3 [1]: 1 Select go_mod_or_dep: 1 - mod 2 - dep Choose from 1, 2 [1]: 1 use_docker [y]: y use_git [y]: y use_logrus_logging [y]: y use_viper_config [y]: y use_cobra_cmd [y]: y Select use_ci: 1 - travis 2 - circle 3 - none Choose from 1, 2, 3 [1]: 3 Initialized empty Git repository in /home/mccricardo/test/demo/.git/ [master (root-commit) 2e82ac9] Initial Commit. 13 files changed, 597 insertions(+) create mode 100644 .gitignore create mode 100644 AUTHORS.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 README.md create mode 100644 cmd/root.go create mode 100644 cmd/version.go create mode 100644 config/config.go create mode 100644 go.mod create mode 100644 log/log.go create mode 100644 main.go create mode 100644 version/version.go
-
Backstage Software Templates
@backstage/plugin-scaffolder-backend through CookieCutter "knows" how to bootstrap Golang projects based on cookiecutter-golang. And that's how all the magic happens.
golang-standards/project-layout
-
"14 Years of Go" by Rob Pike
Your comment makes it look as if you're saying you hate the Go development team, but it seems that isn't the case.
I get a little of what you're saying, I wouldn't say I hate anyone, but I strongly dislike how a lot of projects are organized. I think a lot stems from https://github.com/golang-standards/project-layout , which pretended to be standard and was so (ab)used one of the creators opened an issue about it. If you look at the actual Go src, it's much, much cleaner.
-
Looking for elegant code bases written in GoLang
So you don't get blind sided for self proclaimed "standards" that are not
Take a look at Standard Go Project Layout - https://github.com/golang-standards/project-layout
that repo has spawned so much awkward "appeal to authority" debates in my experience. So much that I have this issue in my bookmarks folder 🥲: https://github.com/golang-standards/project-layout/issues/117
- I'm coming from Java and I have been told that I'm writing go like I'm writing Java. Basically creating structs, injecting fields, and attaching methods. What else can I do?
- O poder do CLI com Golang e Cobra CLI
- Como deixar o Swagger com tema dark mode usando Swaggo e Golang
-
How To Build A Containerized Microservice in Golang: A Step-by-step Guide with Example Use-Case
Familiarity with the standard Golang project structure, which you can find here.
-
Building RESTful API with Hexagonal Architecture in Go
I've been learning how to build web applications using different frameworks and languages for a while now, such as Laravel with its MVC architecture and Node.js following the 'Hapi.js Way'. As I'm trying to create a new portfolio project using Go, I found myself contemplating over the ideal project structure. I wanted something that not only aligns with the standard Go project layout, but also makes the code both easy to write and understand. That's when I stumbled upon the concept of Hexagonal Architecture, as showcased in Netflix's engineering blog. The idea of seamlessly swapping infrastructures with minimal code changes fascinated me, and I decided to implement it in my new project.
-
Idea of multiple directories
I think this doc does a good job covering the design (unofficial) design guidance https://github.com/golang-standards/project-layout
What are some alternatives?
uber-go-style-guide-kr - Uber's Go Style Guide Official Translation in Korean. Linked to the uber-go/guide as a part of contributions
modern-go-application - Modern Go Application example
uber-go-style-guide-th - Uber's Go Style Guide Translation in Thai. Linked to the uber-go/guide as a part of contributions https://github.com/uber-go/guide
go-restful-api - An idiomatic Go REST API starter kit (boilerplate) following the SOLID principles and Clean Architecture
go-sample - Go Project Sample Layout
service - Starter-kit for writing services in Go using Kubernetes.
golang-templates/seed - Go application GitHub repository template.
scaffold - Generate scaffold project layout for Go.
pagoda - Rapid, easy full-stack web development starter kit in Go
countries - Countries - ISO-639, ISO-3166 countries codes with subdivisions and names, ISO-4217 currency designators, ITU-T E.164 IDD phone codes, countries capitals, UN M.49 codes, IANA ccTLD countries domains, FIPS, IOC/NOC and FIFA codes, VERY VERY FAST, compatible with Databases/JSON/BSON/GOB/XML/CSV, Emoji countries flags and currencies, Unicode CLDR.
go-clean-arch - Go (Golang) Clean Architecture based on Reading Uncle Bob's Clean Architecture