Есть вот такая репа со «Standard Go Project Layout» (48К звезд, между прочим). Авторы подчеркивают, что, хотя организация и называется
golang-standards, она не имеет никакого отношения к команде разработки Go. Создатели репы утверждают, что посмотрели, какой project layout используют разные проекты на Go, и сформировали из этого свой «стандарт»:This is NOT an official standard defined by the core Go dev team. This is a set of common historical and emerging project layout patterns in the Go ecosystem. Some of these patterns are more popular than others. It also has a number of small enhancements along with several supporting directories common to any large enough real world application.
Но однажды к ним пришел сам Russ Cox (один из core разработчиков Go) и заявил, что их «стандарт» вовсе не стандарт:
The README makes clear that this is not official, but even the claim "it is a set of common historical and emerging project layout patterns in the Go ecosystem" is not accurate.
For example, the vast majority of packages in the Go ecosystem do not put the importable packages in a pkg subdirectory. More generally what is described here is just very complex, and Go repos tend to be much simpler.
It is unfortunate that this is being put forth as "golang-standards" when it really is not. I'm commenting here because I am starting to see people say things like "you are not using the standard Go project layout" and linking to this repo.
Issue, кстати, в итоге просто закрыли, а обсуждение ограничили. Такие вот дела 🐳