Russ Cox 看不下去了:golang-standards/project-layout 不是 Go 标准布局

polaris · 2021-04-29 11:19:19 · 4155 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-04-29 11:19:19 的主题,其中的信息可能已经有所发展或是发生改变。

相信很多人纠结项目如何组织结构时,看到过 GitHub 上的这个项目:https://github.com/golang-standards/project-layout,到目前为止,这个项目已经 22.8k+ Star 了。

然而,前些天,Go Team Leader Russ Cox 实在看不下去了,在这个项目提了一个 issue:this is not a standard Go project layout

project-layout.png

我想应该有不少人遇到类似 rsc 提到的这个困惑:你的项目没有使用标准的 Go 布局。。。而这个标准的布局,指的就是这项目。

rsc 表示,虽然这个项目在 README 中明确说明了,这个不是官方的。不过无论从项目名称(golang-standards/project-layout)还是里面提到的一些建议,都很容易让人以为是标准。

其实我认为这个项目本身没有什么问题(虽然名字可能确实不太合适),毕竟它是总结了 GitHub 上比较有名的开源项目的出来的。

rsc 提到 pkg 包的问题,但现在很多有名的开源项目,都这么用了。

既然现在社区出现了这个,而且很多人以为是“标准”,那 Go Team 是不是该反思下,为什么会出现这样的情况?Go 官方是不是应该考虑给项目布局一些建议呢。你自己没有,别人有,你又觉得不合适,这是不是不讲道理呢?!别人有,你觉得不好,出一个更好的,我觉得才是正道!!

大家觉得呢?对此,你怎么看?

更新

rsc 回复了「标准」:

  1. 在根目录下放LICENSE文件
  2. 在根目录放一个go.mod文件
  3. 在你认为合适的地方(根目录或者整理到文件夹内),放置 Go 代码。

https://github.com/golang-standards/project-layout/issues/117#issuecomment-828503689

这标准,跟没有差不多?!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4155 次点击  
加入收藏 微博
5 回复  |  直到 2021-05-02 14:13:18
AnkoGo
AnkoGo · #1 · 4年之前

为什么需要定个标准?我觉得宽松才是王道,如此甚好,比如java的mvc框架,这又是一套标准,你用多了,就会觉得是累赘,是束缚!

JJJJJJJerk
JJJJJJJerk · #2 · 4年之前
AnkoGoAnkoGo #1 回复

为什么需要定个标准?我觉得宽松才是王道,如此甚好,比如java的mvc框架,这又是一套标准,你用多了,就会觉得是累赘,是束缚!

超级讨厌这类八股式的项目, 大大的限制了开发者创造性, 当然这类八股,对于新手和代码斯逼中,非常有帮助的

JJJJJJJerk
JJJJJJJerk · #3 · 4年之前

那我个人偏好来说, 我就喜欢扁平化-文件命名前缀的项目结构(项目代码目录结构越扁平越好)

zzustu
zzustu · #4 · 4年之前

22K Star 已经增长到 24K Star

alphayan
alphayan · #5 · 4年之前
JJJJJJJerkJJJJJJJerk #3 回复

那我个人偏好来说, 我就喜欢`扁平化-文件命名前缀的项目结构`(项目代码目录结构越扁平越好)

我也是扁平化

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传