Description
I think I will take responsibility for this issue and propose to close #117, as it became as unhealthy cancelling and persecution of people who disagree with the author.
In order not to be unfounded, I will try to express as neutral as possible all the pros and cons of this decision:
pros:
- this repository mimics to golang officially standards, however golang has not any standards for the architecture of the code (which is a lie, since much parts of this repository is generally accepted in community)
- repository name confuses newbies trying to apply knowledge from django, rust, flutter, etc to go (which has not been proven by any contributor, even @rsc)
- layout is bloated, which is actually true
- layout tries to be universal to any go project
- readme warranty doesn't look helpful
- layout pretends that it is the only true layout in the world (which is even a big lie)
- at this moment only two guys thumbs down 117 issue, "everyone" agree with Russ
cons:
- THIS IS THE MOST IMPORTANT: the discussion spills out from slack and github, and I noticed at least 4 chats in telegram, and one discord server insults the participants because they disagree with @rsc. Unlike YouTube, github has a list of the first 6 people who responded to a post, so members are just afraid to put their thumbs down. such behavior is unacceptable not only in the go community, but in any other.
- term "standard" does not mean an officially accepted document, even the Cambridge Dictionary defines a 'standard' primarily as
a pattern or model that is generally accepted
, accepted in our community. - the statement that the README warranty is not obvious is simply stupid: the READ_ME is created in order to read it before using the software. Those people who agree with this argument mostly agree that the readme should be refactored in order to improve the understanding by golang newbies the purpose of this repository.
- To demand from the author in an ultimatum form to rename the repository is at best uncivilized, at worst it is pure persecution. if this project bothers you, scold those who impose it on you, not the authors of the project.
- at the moment this is the most popular project, and instead of renaming it would be more logical to call @rsc @rakyll @spf13 @avelino @muesli @valyala
(me? jk)and other famous faces of golang community and discuss how this project can be improved. This layout is important for the community, despite the fact that it is not of the highest quality. Agree with it or not, there are lots of people who see this repo useful.
At the same time, I would want to remind you about the story with @kataras who does not accept criticism at all (still not, yeah). Now an identical situation is became right here, but in the different direction: now people are starting to hound the author who didn't anything bad, and they also hound people who disagree with @rsc's position. and all this holywar for the sake of the "concerns they are raising"
I would also want to remind you that it is more logical to offer alternatives if you do not agree with someone's opinion. In №117 i already made this list of alternative best practices, but I will copy it here too, maybe it will help someone:
Most good articles from @henvic:
- https://golang.org/doc/effective_go
- https://github.com/golang/go/wiki/CodeReviewComments
- https://github.com/golang/go/wiki
- https://golang.org/ref/spec
@flowchartsman share these pretty useful posts:
- https://eli.thegreenplace.net/2019/simple-go-project-layout-with-modules/
- https://blog.golang.org/organizing-go-code
- https://rakyll.org/style-packages/
- https://peter.bourgon.org/go-best-practices-2016/#repository-structure
@xhit was the first who wrote good argument about standard layout of stdlib (which is well organized btw):
@higker noted this go blog post:
@xxbtwxx shared amazingly bad structured repo (read as: "how not to layout your code, and why use this is really bad"):
- https://github.com/Shopify/sarama (too funny and too sad lib at the same time, unfortunately)
@itsjamie shared this post:
So #117 must be stopped. For community health.